Skip to content

Commit

Permalink
FS-Cache: Don't delete pending pages from the page-store tracking tree
Browse files Browse the repository at this point in the history
Don't delete pending pages from the page-store tracking tree, but rather send
them for another write as they've presumably been updated.

Signed-off-by: David Howells <dhowells@redhat.com>
  • Loading branch information
David Howells committed Nov 19, 2009
1 parent 1bccf51 commit 285e728
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
7 changes: 5 additions & 2 deletions fs/fscache/page.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,11 @@ static void fscache_end_page_write(struct fscache_object *object,
/* delete the page from the tree if it is now no longer
* pending */
spin_lock(&cookie->stores_lock);
fscache_stat(&fscache_n_store_radix_deletes);
xpage = radix_tree_delete(&cookie->stores, page->index);
if (!radix_tree_tag_get(&cookie->stores, page->index,
FSCACHE_COOKIE_PENDING_TAG)) {
fscache_stat(&fscache_n_store_radix_deletes);
xpage = radix_tree_delete(&cookie->stores, page->index);
}
spin_unlock(&cookie->stores_lock);
wake_up_bit(&cookie->flags, 0);
}
Expand Down
2 changes: 0 additions & 2 deletions lib/radix-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -546,7 +546,6 @@ void *radix_tree_tag_clear(struct radix_tree_root *root,
}
EXPORT_SYMBOL(radix_tree_tag_clear);

#ifndef __KERNEL__ /* Only the test harness uses this at present */
/**
* radix_tree_tag_get - get a tag on a radix tree node
* @root: radix tree root
Expand Down Expand Up @@ -609,7 +608,6 @@ int radix_tree_tag_get(struct radix_tree_root *root,
}
}
EXPORT_SYMBOL(radix_tree_tag_get);
#endif

/**
* radix_tree_next_hole - find the next hole (not-present entry)
Expand Down

0 comments on commit 285e728

Please sign in to comment.