summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2010-07-16 19:52:03 +0000
committerjhb <jhb@FreeBSD.org>2010-07-16 19:52:03 +0000
commit7f218ea7f4311ac365547a39526a95ad6d6f48b2 (patch)
tree3e73fc2d4f9389fa4e442d9702563d6a8f95189f
parentea417bf09acdf5d9f44a16d4325b3b99dda501e3 (diff)
downloadFreeBSD-src-7f218ea7f4311ac365547a39526a95ad6d6f48b2.zip
FreeBSD-src-7f218ea7f4311ac365547a39526a95ad6d6f48b2.tar.gz
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
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c5
-rw-r--r--sys/fs/cd9660/cd9660_vfsops.c2
-rw-r--r--sys/fs/udf/udf_vfsops.c5
-rw-r--r--sys/ufs/ffs/ffs_vfsops.c2
4 files changed, 2 insertions, 12 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
index 68ccd78..740302a 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
@@ -566,11 +566,8 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, int blksz)
}
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);
diff --git a/sys/fs/cd9660/cd9660_vfsops.c b/sys/fs/cd9660/cd9660_vfsops.c
index b8bc6c6..e27daf8 100644
--- a/sys/fs/cd9660/cd9660_vfsops.c
+++ b/sys/fs/cd9660/cd9660_vfsops.c
@@ -814,9 +814,7 @@ cd9660_vget_internal(mp, ino, flags, vpp, relocated, isodir)
vp->v_op = &cd9660_fifoops;
break;
default:
- VI_LOCK(vp);
VN_LOCK_ASHARE(vp);
- VI_UNLOCK(vp);
break;
}
diff --git a/sys/fs/udf/udf_vfsops.c b/sys/fs/udf/udf_vfsops.c
index af41043..7be5384 100644
--- a/sys/fs/udf/udf_vfsops.c
+++ b/sys/fs/udf/udf_vfsops.c
@@ -710,11 +710,8 @@ udf_vget(struct mount *mp, ino_t ino, int flags, struct vnode **vpp)
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;
diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c
index aa9f19a..c099732 100644
--- a/sys/ufs/ffs/ffs_vfsops.c
+++ b/sys/ufs/ffs/ffs_vfsops.c
@@ -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);
}
/*
OpenPOWER on IntegriCloud