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);
        }
 
        /*
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to