From ad3a2328cabdbb92a8e740fd4d211080fcda5d2e Mon Sep 17 00:00:00 2001 From: shadow Date: Fri, 13 Apr 2007 08:33:09 +0000 Subject: [PATCH] Disconnected dentry cannot be found with lookup, so we do not need to unhash it or make it invalid. b=11970 i=green i=wangdi --- lustre/ChangeLog | 6 ++++++ lustre/llite/dcache.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 07148b0..a1a6a4b 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -42,6 +42,12 @@ Description: MDS failing to send precreate requests due to OSCC_FLAG_RECOVERING Details : request with rq_no_resend flag not awake l_wait_event if they get a timeout. +Severity : minor +Frequency : nfs export on patchless client +Bugzilla : 11970 +Description: connectathon hang when test nfs export over patchless client +Details : Disconnected dentry cannot be found with lookup, so we do not need + to unhash it or make it invalid -------------------------------------------------------------------------------- diff --git a/lustre/llite/dcache.c b/lustre/llite/dcache.c index 019ff46..6959df5 100644 --- a/lustre/llite/dcache.c +++ b/lustre/llite/dcache.c @@ -185,6 +185,12 @@ int ll_drop_dentry(struct dentry *dentry) spin_lock(&dcache_lock); return 1; } + /* disconected dentry can not be find without lookup, because we + * not need his to unhash or mark invalid. */ + if (dentry->d_flags & DCACHE_DISCONNECTED) { + unlock_dentry(dentry); + RETURN (0); + } #ifdef LUSTRE_KERNEL_VERSION if (!(dentry->d_flags & DCACHE_LUSTRE_INVALID)) { -- 1.8.3.1