lkml.org 
[lkml]   [2009]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 16/28] FS-Cache: Don't delete pending pages from the page-store tracking tree
    Date
    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>
    ---

    fs/fscache/page.c | 7 +++++--
    lib/radix-tree.c | 2 --
    2 files changed, 5 insertions(+), 4 deletions(-)

    diff --git a/fs/fscache/page.c b/fs/fscache/page.c
    index 3ea8897..022a5da 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,
    /* 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);
    }
    diff --git a/lib/radix-tree.c b/lib/radix-tree.c
    index ae61068..92cdd99 100644
    --- a/lib/radix-tree.c
    +++ b/lib/radix-tree.c
    @@ -546,7 +546,6 @@ out:
    }
    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
    @@ -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)


    \
     
     \ /
      Last update: 2009-11-19 18:27    [W:0.032 / U:30.720 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site