- 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 Roberson 2005-06-07 22:05:32 +00:00
parent 73a1c67d03
commit fae89dce3e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=147113

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;
}
/*