diff options
author | rwatson <rwatson@FreeBSD.org> | 2006-02-11 21:09:27 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2006-02-11 21:09:27 +0000 |
commit | a6ddea17cd613914ae285f229f454d15bd209243 (patch) | |
tree | f003ffffc2d8bd21e36eb62fe5dbcfd434c0f711 /sys/ufs | |
parent | ed21a0cb06b78a3981925a8881a5954eb3a50643 (diff) | |
download | FreeBSD-src-a6ddea17cd613914ae285f229f454d15bd209243.zip FreeBSD-src-a6ddea17cd613914ae285f229f454d15bd209243.tar.gz |
Instead of asserting the vnode lock before manipulating v_vflag, acquire
it and drop it afterwards.
Found by: kris
MFC after: 1 week
Diffstat (limited to 'sys/ufs')
-rw-r--r-- | sys/ufs/ufs/ufs_quota.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/ufs/ufs/ufs_quota.c b/sys/ufs/ufs/ufs_quota.c index f66c2eb..ecb0855 100644 --- a/sys/ufs/ufs/ufs_quota.c +++ b/sys/ufs/ufs/ufs_quota.c @@ -429,8 +429,9 @@ quotaon(td, mp, type, fname) quotaoff(td, mp, type); ump->um_qflags[type] |= QTF_OPENING; mp->mnt_flag |= MNT_QUOTA; - ASSERT_VOP_LOCKED(vp, "quotaon"); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); vp->v_vflag |= VV_SYSTEM; + VOP_UNLOCK(vp, 0, td); *vpp = vp; /* * Save the credential of the process that turned on quotas. |