I'm a beginner in Linux and C, have a question about the virtual page permission bit and area struct permission bit. As the pictures below show:
What I don't understand is, since we have page-level permission control, what's the point to have area struct level permission control? if we want all of the pages in one area to be read-only then we just set every virtual page's read bit to be yes and write bit to be 0, so why double define?

