- Clear VI_OWEINACT before calling vget() with no lock type. We know

the node is actually already locked, and VOP_INACTIVE is not desirable
   in this case.
This commit is contained in:
Jeff Roberson 2005-04-11 11:17:20 +00:00
parent 316ec7bb7f
commit 8e82c4cd5f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=144904

View File

@ -133,6 +133,12 @@ null_hashget(mp, lowervp)
VOP_UNLOCK(vp, 0, td);
goto loop;
}
/*
* We need to clear the OWEINACT flag here as this
* may lead vget() to try to lock our vnode which
* is already locked via lowervp.
*/
vp->v_iflag &= ~VI_OWEINACT;
vget(vp, LK_INTERLOCK, td);
return (vp);
}
@ -174,6 +180,7 @@ null_hashins(mp, xp)
VOP_UNLOCK(ovp, 0, td);
goto loop;
}
ovp->v_iflag &= ~VI_OWEINACT; /* see hashget comment */
vget(ovp, LK_INTERLOCK, td);
return (ovp);
}