From b7b62574fdf64e5d6aa4e3dd932bafc59685f5c0 Mon Sep 17 00:00:00 2001 From: Chas Williams Date: Wed, 14 Jul 2004 05:21:54 +0000 Subject: [PATCH] fix-fstrace-for-linux-20040714 FIXES 5835 don't deadlock when flushing dcache children --- src/afs/afs_vcache.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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); -- 2.39.5