mm: move clearing of page->mapping to page_cache_tree_delete()
authorJan Kara <[email protected]>
Thu, 16 Nov 2017 01:37:26 +0000 (17:37 -0800)
committerLinus Torvalds <[email protected]>
Thu, 16 Nov 2017 02:21:06 +0000 (18:21 -0800)
Clearing of page->mapping makes sense in page_cache_tree_delete() as
well and it will help us with batching things this way.

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Jan Kara <[email protected]>
Acked-by: Mel Gorman <[email protected]>
Reviewed-by: Andi Kleen <[email protected]>
Cc: Dave Chinner <[email protected]>
Cc: Dave Hansen <[email protected]>
Cc: "Kirill A. Shutemov" <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/filemap.c

index 014109e66e4a59875fcd4665ddd7e584fb41d3fb..c649624d386c17281e9e7a6ebe58b343a2fc0163 100644 (file)
@@ -165,6 +165,9 @@ static void page_cache_tree_delete(struct address_space *mapping,
                                     workingset_update_node, mapping);
        }
 
+       page->mapping = NULL;
+       /* Leave page->index set: truncation lookup relies upon it */
+
        if (shadow) {
                mapping->nrexceptional += nr;
                /*
@@ -250,9 +253,6 @@ void __delete_from_page_cache(struct page *page, void *shadow)
                                             inode_to_wb(mapping->host));
        }
        page_cache_tree_delete(mapping, page, shadow);
-
-       page->mapping = NULL;
-       /* Leave page->index set: truncation lookup relies upon it */
 }
 
 static void page_cache_free_page(struct address_space *mapping,