aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2025-09-24 08:52:28 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2025-09-24 08:52:28 +0000
commit21d42c8d902235b90b59d1aea6203b12e40c6c1b (patch)
treee2dd064be2d9ac298147c10dcbf69d941a1912a3
parent185c2c3dab3627bac929143795cec2d78d0aceab (diff)
vfs: let the compiler catch unhandled vgetstate values in vget_abort
-rw-r--r--sys/kern/vfs_subr.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 9818c60ca387..73e110c05bc1 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -3352,13 +3352,22 @@ vget_abort(struct vnode *vp, enum vgetstate vs)
switch (vs) {
case VGET_USECOUNT:
vrele(vp);
- break;
+ goto out_ok;
case VGET_HOLDCNT:
vdrop(vp);
+ goto out_ok;
+ case VGET_NONE:
break;
- default:
- __assert_unreachable();
}
+
+ __assert_unreachable();
+
+ /*
+ * This is a goto label should the cases above have more in common than
+ * just the 'return' statement.
+ */
+out_ok:
+ return;
}
int