从vm_area找到其映射的struct page那叫mapping,反过来,从一个struct page找到所有映射上来的vm_area就叫reverse mapping。
对于匿名映射,情况是这样的:

而对于非匿名映射,应该这样:

前者的技巧是加了anon_vma链表,而后者是加了一个layer——address_space。瞧~这名字起得多好,如果你第一次见绝对会把你绕晕~!
上面的图片也清楚地向我们展示了这么一个结论:C语言编程其实就是Find a Needle in the Haystack~~!怎样?这次你信了吧~!