Page MenuHomeFreeBSD

D37759.id.diff
No OneTemporary

D37759.id.diff

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -4145,9 +4145,20 @@
/*
* Print out a description of a vnode.
*/
-static const char * const typename[] =
-{"VNON", "VREG", "VDIR", "VBLK", "VCHR", "VLNK", "VSOCK", "VFIFO", "VBAD",
- "VMARKER"};
+static const char *const vtypename[] = {
+ [VNON] = "VNON",
+ [VREG] = "VREG",
+ [VDIR] = "VDIR",
+ [VBLK] = "VBLK",
+ [VCHR] = "VCHR",
+ [VLNK] = "VLNK",
+ [VSOCK] = "VSOCK",
+ [VFIFO] = "VFIFO",
+ [VBAD] = "VBAD",
+ [VMARKER] = "VMARKER",
+};
+_Static_assert(nitems(vtypename) == VLASTTYPE + 1,
+ "vnode type name not added to vtypename");
_Static_assert((VHOLD_ALL_FLAGS & ~VHOLD_NO_SMR) == 0,
"new hold count flag not added to vn_printf");
@@ -4165,7 +4176,7 @@
vprintf(fmt, ap);
va_end(ap);
printf("%p: ", (void *)vp);
- printf("type %s\n", typename[vp->v_type]);
+ printf("type %s\n", vtypename[vp->v_type]);
holdcnt = atomic_load_int(&vp->v_holdcnt);
printf(" usecount %d, writecount %d, refcount %d seqc users %d",
vp->v_usecount, vp->v_writecount, holdcnt & ~VHOLD_ALL_FLAGS,
diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h
--- a/sys/sys/vnode.h
+++ b/sys/sys/vnode.h
@@ -58,6 +58,7 @@
*/
enum vtype { VNON, VREG, VDIR, VBLK, VCHR, VLNK, VSOCK, VFIFO, VBAD,
VMARKER };
+#define VLASTTYPE VMARKER
enum vgetstate { VGET_NONE, VGET_HOLDCNT, VGET_USECOUNT };
/*

File Metadata

Mime Type
text/plain
Expires
Tue, Nov 4, 12:27 PM (10 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24749090
Default Alt Text
D37759.id.diff (1 KB)

Event Timeline