[Tux3] Possible solution to the deferred nameops delete issue

Daniel Phillips phillips at phunq.net
Thu Nov 27 06:03:20 PST 2008


Hi,

The patch below seems to resolve the issue where dcache would unhash
any dentry that has multiple use counts at the time of a delete.  I
have no idea what the benefit of that is, and after scratching my head
about it for days, I decided there probably is no good reason at all.
A later dput will drop the dentry count to zero and do the d_iput.  The
elevated dentry count case is rare, and the guilty party is probably
going to do a dput very soon.  So I just can't imagine what the intent
of the aggressive __d_drop really was.

Maciej and Hirofumi, could you apply your considerable intellect to
checking my reasoning?

diff --git a/fs/dcache.c b/fs/dcache.c
index 6068c25..d85b314 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1400,9 +1400,6 @@ void d_delete(struct dentry * dentry)
 		return;
 	}
 
-	if (!d_unhashed(dentry))
-		__d_drop(dentry);
-
 	spin_unlock(&dentry->d_lock);
 	spin_unlock(&dcache_lock);
 

_______________________________________________
Tux3 mailing list
Tux3 at tux3.org
http://tux3.org/cgi-bin/mailman/listinfo/tux3



More information about the Tux3 mailing list