From: Chas Williams Date: Tue, 10 Oct 2006 23:01:04 +0000 (+0000) Subject: STABLE14-linux-dont-lock-around-inactivevcache-20061010 X-Git-Tag: openafs-stable-1_4_2~11 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=7f900716fa8c3449c90a381172abe4a026efd59f;p=packages%2Fo%2Fopenafs.git STABLE14-linux-dont-lock-around-inactivevcache-20061010 FIXES 42312 iafs_InactiveVCache() calls afs_InvalidateAllSegments() which says it should be called with the vnode locked. so the lock should probably be moved to afs_InactiveVCache() so it can be droppped before calling afs_remunlink(). (cherry picked from commit ac52e2f3c0bec9298d020de963036409165f380e) --- diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 850543bce..37bb90f58 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -821,9 +821,7 @@ afs_dentry_iput(struct dentry *dp, struct inode *ip) struct vcache *vcp = VTOAFS(ip); AFS_GLOCK(); - ObtainWriteLock(&vcp->lock, 537); (void) afs_InactiveVCache(vcp, NULL); - ReleaseWriteLock(&vcp->lock); AFS_GUNLOCK(); iput(ip);