From: Derrick Brashear Date: Tue, 10 Jan 2006 15:04:40 +0000 (+0000) Subject: STABLE14-remove-vnop-lock-order-20060110 X-Git-Tag: openafs-stable-1_4_1-rc4~6 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=43de10c9cb8c3d2924b749cc5a62525efafe2fef;p=packages%2Fo%2Fopenafs.git STABLE14-remove-vnop-lock-order-20060110 FIXES 25118 finegrained dcache lock order not obeyed (cherry picked from commit 39b23a0dc16f2e26abf3b7df53bfadb98377748d) --- diff --git a/src/afs/VNOPS/afs_vnop_remove.c b/src/afs/VNOPS/afs_vnop_remove.c index 92e344f0c..a9de86702 100644 --- a/src/afs/VNOPS/afs_vnop_remove.c +++ b/src/afs/VNOPS/afs_vnop_remove.c @@ -356,7 +356,13 @@ 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. */ + if (tdc) + ObtainSharedLock(&tdc->lock, 640); } osi_dnlc_remove(adp, aname, tvc);