- Don't use the interlock to protect v_writecount.
This commit is contained in:
parent
37ab0e0d81
commit
8823f1b6db
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=103943
@ -447,16 +447,15 @@ quotaon(td, mp, type, fname)
|
||||
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);
|
||||
mtx_lock(&mntvnode_mtx);
|
||||
continue;
|
||||
}
|
||||
if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td)) {
|
||||
if (vget(vp, LK_EXCLUSIVE, td)) {
|
||||
mtx_lock(&mntvnode_mtx);
|
||||
goto again;
|
||||
}
|
||||
if (vp->v_type == VNON || vp->v_writecount == 0) {
|
||||
vput(vp);
|
||||
mtx_lock(&mntvnode_mtx);
|
||||
continue;
|
||||
}
|
||||
error = getinoquota(VTOI(vp));
|
||||
vput(vp);
|
||||
mtx_lock(&mntvnode_mtx);
|
||||
|
Loading…
Reference in New Issue
Block a user