From: Nick Piggin zone->lock is quite an "inner" lock and mostly constrained to page alloc as well, so like slab locks, it probably isn't something that is critically important to document here. However unlike slab locks, zone lock could be used more widely in future, and page_alloc.c might possibly have more business to do tricky things with pagecache than does slab. So... I don't think it hurts to document it. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton --- diff -puN mm/filemap.c~mm-document-tree_lock-zonelock-lockorder mm/filemap.c --- a/mm/filemap.c~mm-document-tree_lock-zonelock-lockorder +++ a/mm/filemap.c @@ -63,6 +63,7 @@ generic_file_direct_IO(int rw, struct ki * ->private_lock (__free_pte->__set_page_dirty_buffers) * ->swap_lock (exclusive_swap_page, others) * ->mapping->tree_lock + * ->zone.lock * * ->i_mutex * ->i_mmap_lock (truncate->unmap_mapping_range) diff -puN mm/rmap.c~mm-document-tree_lock-zonelock-lockorder mm/rmap.c --- a/mm/rmap.c~mm-document-tree_lock-zonelock-lockorder +++ a/mm/rmap.c @@ -36,6 +36,7 @@ * mapping->tree_lock (widely used, in set_page_dirty, * in arch-dependent flush_dcache_mmap_lock, * within inode_lock in __sync_single_inode) + * zone->lock (within radix tree node alloc) */ #include _