vtryrecycle: Don't rely on type VBAD alone to mean that we don't need

to clean the vnode.  If v_data is set, we still need to
	     clean it.  This code change should catch all incidents of
	     the previous commit (INVARIANTS only).
This commit is contained in:
Greg Lehey 2004-10-06 02:09:59 +00:00
parent f2154b33d2
commit 57259f2864

View File

@ -708,7 +708,7 @@ vtryrecycle(struct vnode *vp)
vp->v_iflag &= ~VI_FREE;
mtx_unlock(&vnode_free_list_mtx);
vp->v_iflag |= VI_DOOMED;
if (vp->v_type != VBAD) {
if ((vp->v_type != VBAD) || (vp->v_data != NULL)) {
VOP_UNLOCK(vp, 0, td);
vgonel(vp, td);
VI_LOCK(vp);