diff options
author | Jeff Roberson <jeff@FreeBSD.org> | 2005-06-07 22:05:32 +0000 |
---|---|---|
committer | Jeff Roberson <jeff@FreeBSD.org> | 2005-06-07 22:05:32 +0000 |
commit | fae89dce3e2e7fcea87cf217df75e82222754fbf (patch) | |
tree | 2858f470aaad8847ebc66e03bab7f5e20f07925c /sys/kern/vfs_subr.c | |
parent | 73a1c67d0305c7ceb2d16fffe8a171f216b23cb1 (diff) | |
download | src-fae89dce3e2e7fcea87cf217df75e82222754fbf.tar.gz src-fae89dce3e2e7fcea87cf217df75e82222754fbf.zip |
- Clear OWEINACT prior to calling VOP_INACTIVE to remove the possibility
of a vget causing another call to INACTIVE before we're finished.
Notes
Notes:
svn path=/head/; revision=147113
Diffstat (limited to 'sys/kern/vfs_subr.c')
-rw-r--r-- | sys/kern/vfs_subr.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index dee3a1b55073..9a612a4bd833 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -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; } /* |