summaryrefslogtreecommitdiffstats
path: root/mm/filemap.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2017-11-16 02:37:26 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2017-11-16 03:21:06 +0100
commit2300638b124645c26d082dbb57841878202ff6f7 (patch)
tree12b3bce371329c55fdbaf77b6a9cfc9d148c0e39 /mm/filemap.c
parentmm: move accounting updates before page_cache_tree_delete() (diff)
downloadlinux-2300638b124645c26d082dbb57841878202ff6f7.tar.xz
linux-2300638b124645c26d082dbb57841878202ff6f7.zip
mm: move clearing of page->mapping to page_cache_tree_delete()
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/20171010151937.26984-6-jack@suse.cz Signed-off-by: Jan Kara <jack@suse.cz> Acked-by: Mel Gorman <mgorman@suse.de> Reviewed-by: Andi Kleen <ak@linux.intel.com> Cc: Dave Chinner <david@fromorbit.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/filemap.c')
-rw-r--r--mm/filemap.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/mm/filemap.c b/mm/filemap.c
index 014109e66e4a..c649624d386c 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -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,