]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE12-fstrace-avoid-double-glock-in-dentry-code-during-fstrace-20040719
authorDerrick Brashear <shadow@dementia.org>
Thu, 21 Oct 2004 16:01:20 +0000 (16:01 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 21 Oct 2004 16:01:20 +0000 (16:01 +0000)
fstracing on a linux machine and trying to fs flush a file in the cache would tr
igger a hang on a machine with SMP kernel. fix it.

src/afs/LINUX/osi_vnodeops.c

index 18e58505a48aeafb99d1fe601f9ee0eab18033be..a622a5c41c2278b5739fa9fe7cb793ad1bf13580 100644 (file)
@@ -858,7 +858,7 @@ static void afs_dentry_iput(struct dentry *dp, struct inode *ip)
                   ICL_TYPE_POINTER, ip,
                   ICL_TYPE_STRING, dp->d_parent->d_name.name,
                   ICL_TYPE_STRING, dp->d_name.name);
-       is (!isglock) AFS_GUNLOCK();
+       if (!isglock) AFS_GUNLOCK();
     }
 
     osi_iput(ip);
@@ -868,11 +868,11 @@ static int afs_dentry_delete(struct dentry *dp)
 {
     int isglock;
     if (ICL_SETACTIVE(afs_iclSetp)) {
-       is (!isglock) AFS_GLOCK();
+       if (!isglock) AFS_GLOCK();
        afs_Trace3(afs_iclSetp, CM_TRACE_DENTRYDELETE, ICL_TYPE_POINTER, 
                   dp->d_inode, ICL_TYPE_STRING, dp->d_parent->d_name.name,
                   ICL_TYPE_STRING, dp->d_name.name);
-       is (!isglock) AFS_GUNLOCK();
+       if (!isglock) AFS_GUNLOCK();
     }
 
     if (dp->d_inode && (ITOAFS(dp->d_inode)->states & CUnlinked))