dcache.c: call ->d_prune() regardless of d_unhashed()
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 30 May 2014 15:39:02 +0000 (11:39 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 9 Oct 2014 06:38:59 +0000 (02:38 -0400)
the only in-tree instance checks d_unhashed() anyway,
out-of-tree code can preserve the current behaviour by
adding such check if they want it and we get an ability
to use it in cases where we *want* to be notified of
killing being inevitable before ->d_lock is dropped,
whether it's unhashed or not.  In particular, autofs
would benefit from that.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/dcache.c

index d8a77b1c3d52b7bd68640ae33d6873bac5541968..21eee4c08e76e790694723f63e5e745e64589ba3 100644 (file)
@@ -482,7 +482,7 @@ static void __dentry_kill(struct dentry *dentry)
         * inform the fs via d_prune that this dentry is about to be
         * unhashed and destroyed.
         */
-       if ((dentry->d_flags & DCACHE_OP_PRUNE) && !d_unhashed(dentry))
+       if (dentry->d_flags & DCACHE_OP_PRUNE)
                dentry->d_op->d_prune(dentry);
 
        if (dentry->d_flags & DCACHE_LRU_LIST) {