aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJeff Roberson <jeff@FreeBSD.org>2005-06-07 22:05:32 +0000
committerJeff Roberson <jeff@FreeBSD.org>2005-06-07 22:05:32 +0000
commitfae89dce3e2e7fcea87cf217df75e82222754fbf (patch)
tree2858f470aaad8847ebc66e03bab7f5e20f07925c /sys
parent73a1c67d0305c7ceb2d16fffe8a171f216b23cb1 (diff)
downloadsrc-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')
-rw-r--r--sys/kern/vfs_subr.c3
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;
}
/*