- Clear OWEINACT prior to calling VOP_INACTIVE to remove the possibility

of a vget causing another call to INACTIVE before we're finished.
This commit is contained in:
jeff 2005-06-07 22:05:32 +00:00
parent c951593ab8
commit 4a9af33a3f

View File

@ -2033,12 +2033,13 @@ vinactive(struct vnode *vp, struct thread *td)
VNASSERT((vp->v_iflag & VI_DOINGINACT) == 0, vp,
("vinactive: recursed on VI_DOINGINACT"));
vp->v_iflag |= VI_DOINGINACT;
vp->v_iflag &= ~VI_OWEINACT;
VI_UNLOCK(vp);
VOP_INACTIVE(vp, td);
VI_LOCK(vp);
VNASSERT(vp->v_iflag & VI_DOINGINACT, vp,
("vinactive: lost VI_DOINGINACT"));
vp->v_iflag &= ~(VI_DOINGINACT|VI_OWEINACT);
vp->v_iflag &= ~VI_DOINGINACT;
}
/*