aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fscache/page.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/fscache/page.c')
-rw-r--r--fs/fscache/page.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/fscache/page.c b/fs/fscache/page.c
index 3ea8897bc217..022a5da8e130 100644
--- a/fs/fscache/page.c
+++ b/fs/fscache/page.c
@@ -57,8 +57,11 @@ static void fscache_end_page_write(struct fscache_object *object,
57 /* delete the page from the tree if it is now no longer 57 /* delete the page from the tree if it is now no longer
58 * pending */ 58 * pending */
59 spin_lock(&cookie->stores_lock); 59 spin_lock(&cookie->stores_lock);
60 fscache_stat(&fscache_n_store_radix_deletes); 60 if (!radix_tree_tag_get(&cookie->stores, page->index,
61 xpage = radix_tree_delete(&cookie->stores, page->index); 61 FSCACHE_COOKIE_PENDING_TAG)) {
62 fscache_stat(&fscache_n_store_radix_deletes);
63 xpage = radix_tree_delete(&cookie->stores, page->index);
64 }
62 spin_unlock(&cookie->stores_lock); 65 spin_unlock(&cookie->stores_lock);
63 wake_up_bit(&cookie->flags, 0); 66 wake_up_bit(&cookie->flags, 0);
64 } 67 }