summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2002-09-25 02:44:55 +0000
committerjeff <jeff@FreeBSD.org>2002-09-25 02:44:55 +0000
commit263f8202f6610e839d8fc82b483baf7b85d8de91 (patch)
tree4cb9020128f6fe9cd236171314aecd3eb3b6be90
parent76a1e2b647d38f81dd8f1568601975eb9dc6808b (diff)
downloadFreeBSD-src-263f8202f6610e839d8fc82b483baf7b85d8de91.zip
FreeBSD-src-263f8202f6610e839d8fc82b483baf7b85d8de91.tar.gz
- Don't use the interlock to protect v_writecount.
-rw-r--r--sys/ufs/ufs/ufs_quota.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/ufs/ufs/ufs_quota.c b/sys/ufs/ufs/ufs_quota.c
index 57319f0..6831690 100644
--- a/sys/ufs/ufs/ufs_quota.c
+++ b/sys/ufs/ufs/ufs_quota.c
@@ -447,15 +447,14 @@ again:
nextvp = TAILQ_NEXT(vp, v_nmntvnodes);
mtx_unlock(&mntvnode_mtx);
- mtx_lock(&vp->v_interlock);
- if (vp->v_type == VNON || vp->v_writecount == 0) {
- mtx_unlock(&vp->v_interlock);
+ if (vget(vp, LK_EXCLUSIVE, td)) {
mtx_lock(&mntvnode_mtx);
- continue;
+ goto again;
}
- if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td)) {
+ if (vp->v_type == VNON || vp->v_writecount == 0) {
+ vput(vp);
mtx_lock(&mntvnode_mtx);
- goto again;
+ continue;
}
error = getinoquota(VTOI(vp));
vput(vp);
OpenPOWER on IntegriCloud