aboutsummaryrefslogtreecommitdiff
path: root/sys/kern/vfs_subr.c
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2020-02-08 15:52:20 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2020-02-08 15:52:20 +0000
commit2f7f11b7deebefa2f179cc04bb6d434add6ac249 (patch)
treebd93bf4552618dea06e07742d42152d5e8b10a34 /sys/kern/vfs_subr.c
parent3eb6b656c2e3a9565584b247e112d83532727c13 (diff)
downloadsrc-2f7f11b7deebefa2f179cc04bb6d434add6ac249.tar.gz
src-2f7f11b7deebefa2f179cc04bb6d434add6ac249.zip
vfs: tidy up vget_finish and vn_lock
- remove assertion which duplicates vn_lock - use VNPASS instead of retyping the failure - report what flags were passed if panicking on them
Notes
Notes: svn path=/head/; revision=357680
Diffstat (limited to 'sys/kern/vfs_subr.c')
-rw-r--r--sys/kern/vfs_subr.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index f9f1f0a541c6..7137031dee02 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -2889,19 +2889,12 @@ vget_finish(struct vnode *vp, int flags, enum vgetstate vs)
{
int error, old;
- VNASSERT((flags & LK_TYPE_MASK) != 0, vp,
- ("%s: invalid lock operation", __func__));
-
if ((flags & LK_INTERLOCK) != 0)
ASSERT_VI_LOCKED(vp, __func__);
else
ASSERT_VI_UNLOCKED(vp, __func__);
- VNASSERT(vp->v_holdcnt > 0, vp, ("%s: vnode not held", __func__));
- if (vs == VGET_USECOUNT) {
- VNASSERT(vp->v_usecount > 0, vp,
- ("%s: vnode without usecount when VGET_USECOUNT was passed",
- __func__));
- }
+ VNPASS(vp->v_holdcnt > 0, vp);
+ VNPASS(vs == VGET_HOLDCNT || vp->v_usecount > 0, vp);
error = vn_lock(vp, flags);
if (__predict_false(error != 0)) {
@@ -2914,9 +2907,8 @@ vget_finish(struct vnode *vp, int flags, enum vgetstate vs)
return (error);
}
- if (vs == VGET_USECOUNT) {
+ if (vs == VGET_USECOUNT)
return (0);
- }
if (__predict_false(vp->v_type == VCHR))
return (vget_finish_vchr(vp));