]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
linux-afs-put-inode-dont-race-20051128
authorChas Williams <chas@cmf.nrl.navy.mil>
Tue, 29 Nov 2005 03:09:24 +0000 (03:09 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 29 Nov 2005 03:09:24 +0000 (03:09 +0000)
FIXES 23318

hold lock across refcount check. oops

src/afs/LINUX/osi_vfsops.c

index 8d6ce9bddc95cc7fb5e79e5b149512ae8d0803f4..63d14577b976abb499b452799a9aa08f4239696c 100644 (file)
@@ -343,12 +343,12 @@ afs_put_inode(struct inode *ip)
 {
     struct vcache *vcp = VTOAFS(ip);
 
+    AFS_GLOCK();
     if (VREFCOUNT(vcp) == 2) {
-       AFS_GLOCK();
        if (VREFCOUNT(vcp) == 2)
            afs_InactiveVCache(vcp, NULL);
-       AFS_GUNLOCK();
     }
+    AFS_GUNLOCK();
 }
 
 /* afs_put_super