下面先看下address_space结构定义:
struct address_space {
struct inode *host;
/* owner: inode, block_device拥有它的节点*/
struct radix_tree_root page_tree;
/* radix tree of all pages包含全部页面的radix树*/
rwlock_t tree_lock;
/* and rwlock protecting it保护page_tree的自旋锁*/
unsigned int i_mmap_writable;/* count VM_SHARED mappings共享映射数VM_SHARED记数*/
struct prio_tree_root i_mmap;
/* tree of private and shared mappings优先搜索树的树根*/
struct list_head i_mmap_nonlinear;/*list VM_NONLINEAR mappings非线性映射的链表头*/
spinlock_t i_mmap_lock;
/* protect tree, count, list保护i_mmap的自旋锁*/
unsigned int truncate_count;
/* Cover race condition with truncate将文件截断的记数*/
unsigned long nrpages;
/* number of total pages页总数*/
pgoff_t writeback_index;/* w