@@ -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,