From: Chas Williams Date: Wed, 14 Jul 2004 05:21:54 +0000 (+0000) Subject: fix-fstrace-for-linux-20040714 X-Git-Tag: openafs-devel-1_3_66~50 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=b7b62574fdf64e5d6aa4e3dd932bafc59685f5c0;p=packages%2Fo%2Fopenafs.git fix-fstrace-for-linux-20040714 FIXES 5835 don't deadlock when flushing dcache children --- diff --git a/src/afs/afs_vcache.c b/src/afs/afs_vcache.c index 188ba6a03..0c86e81a1 100644 --- a/src/afs/afs_vcache.c +++ b/src/afs/afs_vcache.c @@ -656,10 +656,14 @@ afs_TryFlushDcacheChildren(struct vcache *tvc) while ((cur = cur->next) != head) { dentry = list_entry(cur, struct dentry, d_alias); - afs_Trace3(afs_iclSetp, CM_TRACE_TRYFLUSHDCACHECHILDREN, + if (ICL_SETACTIVE(afs_iclSetp)) { + AFS_GLOCK(); + afs_Trace3(afs_iclSetp, CM_TRACE_TRYFLUSHDCACHECHILDREN, ICL_TYPE_POINTER, ip, ICL_TYPE_STRING, dentry->d_parent->d_name.name, ICL_TYPE_STRING, dentry->d_name.name); + AFS_GUNLOCK(); + } if (!list_empty(&dentry->d_hash) && !list_empty(&dentry->d_subdirs)) __shrink_dcache_parent(dentry);