svn commit: r210172 - in head/sys: cddl/contrib/opensolaris/uts/common/fs/zfs fs/cd9660 fs/udf ufs/ffs

John Baldwin jhb at FreeBSD.org
Fri Jul 16 19:52:03 UTC 2010


Author: jhb
Date: Fri Jul 16 19:52:03 2010
New Revision: 210172
URL: http://svn.freebsd.org/changeset/base/210172

Log:
  Revert the previous commit.  The race is not applicable to the lockmgr
  implementation in 8.0 and later as its flags field does not hold dynamic
  state such as waiters flags, but is only modified in lockinit() aside
  from VN_LOCK_*().
  
  Discussed with:	attilio

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
  head/sys/fs/cd9660/cd9660_vfsops.c
  head/sys/fs/udf/udf_vfsops.c
  head/sys/ufs/ffs/ffs_vfsops.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c	Fri Jul 16 19:20:20 2010	(r210171)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c	Fri Jul 16 19:52:03 2010	(r210172)
@@ -566,11 +566,8 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_bu
 		}
 		break;
 	}
-	if (vp->v_type != VFIFO) {
-		VI_LOCK(vp);
+	if (vp->v_type != VFIFO)
 		VN_LOCK_ASHARE(vp);
-		VI_UNLOCK(vp);
-	}
 
 	mutex_enter(&zfsvfs->z_znodes_lock);
 	list_insert_tail(&zfsvfs->z_all_znodes, zp);

Modified: head/sys/fs/cd9660/cd9660_vfsops.c
==============================================================================
--- head/sys/fs/cd9660/cd9660_vfsops.c	Fri Jul 16 19:20:20 2010	(r210171)
+++ head/sys/fs/cd9660/cd9660_vfsops.c	Fri Jul 16 19:52:03 2010	(r210172)
@@ -814,9 +814,7 @@ cd9660_vget_internal(mp, ino, flags, vpp
 		vp->v_op = &cd9660_fifoops;
 		break;
 	default:
-		VI_LOCK(vp);
 		VN_LOCK_ASHARE(vp);
-		VI_UNLOCK(vp);
 		break;
 	}
 

Modified: head/sys/fs/udf/udf_vfsops.c
==============================================================================
--- head/sys/fs/udf/udf_vfsops.c	Fri Jul 16 19:20:20 2010	(r210171)
+++ head/sys/fs/udf/udf_vfsops.c	Fri Jul 16 19:52:03 2010	(r210172)
@@ -710,11 +710,8 @@ udf_vget(struct mount *mp, ino_t ino, in
 		break;
 	}
 
-	if (vp->v_type != VFIFO) {
-		VI_LOCK(vp);
+	if (vp->v_type != VFIFO)
 		VN_LOCK_ASHARE(vp);
-		VI_UNLOCK(vp);
-	}
 
 	if (ino == udf_getid(&udfmp->root_icb))
 		vp->v_vflag |= VV_ROOT;

Modified: head/sys/ufs/ffs/ffs_vfsops.c
==============================================================================
--- head/sys/ufs/ffs/ffs_vfsops.c	Fri Jul 16 19:20:20 2010	(r210171)
+++ head/sys/ufs/ffs/ffs_vfsops.c	Fri Jul 16 19:52:03 2010	(r210172)
@@ -1577,9 +1577,7 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags
 	 */
 	if (vp->v_type != VFIFO) {
 		/* FFS supports shared locking for all files except fifos. */
-		VI_LOCK(vp);
 		VN_LOCK_ASHARE(vp);
-		VI_UNLOCK(vp);
 	}
 
 	/*


More information about the svn-src-head mailing list