- 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:
parent
316ec7bb7f
commit
8e82c4cd5f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=144904
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user