From 2024fe94cb331fe4eeeff3626617ab8090ce70ea Mon Sep 17 00:00:00 2001 From: Hartmut Reuter Date: Sat, 25 Feb 2006 06:39:20 +0000 Subject: [PATCH] vnop-remove-revised-lock-order-20060225 FIXES 27176 drop the tdc lock even rearlier --- src/afs/VNOPS/afs_vnop_remove.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/afs/VNOPS/afs_vnop_remove.c b/src/afs/VNOPS/afs_vnop_remove.c index 928e41e66..dfb7d32d5 100644 --- a/src/afs/VNOPS/afs_vnop_remove.c +++ b/src/afs/VNOPS/afs_vnop_remove.c @@ -349,6 +349,8 @@ afs_remove(OSI_VC_ARG(adp), aname, acred) if (tvc && osi_Active(tvc)) { /* about to delete whole file, prefetch it first */ ReleaseWriteLock(&adp->lock); + if (tdc) + ReleaseSharedLock(&tdc->lock); ObtainWriteLock(&tvc->lock, 143); #if defined(AFS_OSF_ENV) afs_Wire(tvc, &treq); @@ -356,8 +358,6 @@ afs_remove(OSI_VC_ARG(adp), aname, acred) FetchWholeEnchilada(tvc, &treq); #endif ReleaseWriteLock(&tvc->lock); - if (tdc) - ReleaseSharedLock(&tdc->lock); ObtainWriteLock(&adp->lock, 144); /* Technically I don't think we need this back, but let's hold it anyway; The "got" reference should actually be sufficient. */ -- 2.39.5