Source
20
20
/*
21
21
* Lock ordering in mm:
22
22
*
23
23
* inode->i_mutex (while writing or truncating, not reading or faulting)
24
24
* mm->mmap_sem
25
25
* page->flags PG_locked (lock_page)
26
26
* hugetlbfs_i_mmap_rwsem_key (in huge_pmd_share)
27
27
* mapping->i_mmap_rwsem
28
28
* anon_vma->rwsem
29
29
* mm->page_table_lock or pte_lock
30
-
* zone_lru_lock (in mark_page_accessed, isolate_lru_page)
30
+
* pgdat->lru_lock (in mark_page_accessed, isolate_lru_page)
31
31
* swap_lock (in swap_duplicate, swap_info_get)
32
32
* mmlist_lock (in mmput, drain_mmlist and others)
33
33
* mapping->private_lock (in __set_page_dirty_buffers)
34
34
* mem_cgroup_{begin,end}_page_stat (memcg->move_lock)
35
35
* i_pages lock (widely used)
36
36
* inode->i_lock (in set_page_dirty's __mark_inode_dirty)
37
37
* bdi.wb->list_lock (in set_page_dirty's __mark_inode_dirty)
38
38
* sb_lock (within inode_lock in fs/fs-writeback.c)
39
39
* i_pages lock (widely used, in set_page_dirty,
40
40
* in arch-dependent flush_dcache_mmap_lock,