[lkml]   [2010]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[19/24] nfs d_revalidate() is too trigger-happy with d_drop()
    2.6.27-stable review patch.  If anyone has any objections, please let us know.


    From: Al Viro <>

    commit d9e80b7de91db05c1c4d2e5ebbfd70b3b3ba0e0f upstream.

    If dentry found stale happens to be a root of disconnected tree, we
    can't d_drop() it; its d_hash is actually part of s_anon and d_drop()
    would simply hide it from shrink_dcache_for_umount(), leading to
    all sorts of fun, including busy inodes on umount and oopsen after

    Bug had been there since at least 2006 (commit c636eb already has it),
    so it's definitely -stable fodder.

    Signed-off-by: Al Viro <>
    Signed-off-by: Linus Torvalds <>
    Signed-off-by: Greg Kroah-Hartman <>

    fs/nfs/dir.c | 2 ++
    1 file changed, 2 insertions(+)

    --- a/fs/nfs/dir.c
    +++ b/fs/nfs/dir.c
    @@ -826,6 +826,8 @@ out_zap_parent:
    /* If we have submounts, don't unhash ! */
    if (have_submounts(dentry))
    goto out_valid;
    + if (dentry->d_flags & DCACHE_DISCONNECTED)
    + goto out_valid;

     \ /
      Last update: 2010-05-25 00:43    [W:0.043 / U:5.412 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site