aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Libby <rlibby@FreeBSD.org>2025-10-01 18:25:27 +0000
committerRyan Libby <rlibby@FreeBSD.org>2025-10-01 18:25:27 +0000
commit76157a63a0c63dd7363f6c8ae60edc814b3c138a (patch)
tree3eb863c1191c7a3ac4565714573ce8200197eb5e
parent300aa267efaa08564337797e89590737a7cc6af0 (diff)
ddb show lockedvnods: avoid trap for ufs vnode under construction
ddb show lockedvnods might find a ufs vnode after it is inserted into the mount queue in ffs_vgetf but before the dinode is allocated. Avoid trapping by testing for the dinode pointer. Reviewed by: markj Discussed with: mjg Sponsored by: Dell Inc. Differential Revision: https://reviews.freebsd.org/D52795
-rw-r--r--sys/ufs/ufs/ufs_vnops.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index 0921eee92b9d..736c5a66267e 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -2592,8 +2592,12 @@ ufs_print(
printf("\tnlink=%d, effnlink=%d, size=%jd", ip->i_nlink,
ip->i_effnlink, (intmax_t)ip->i_size);
- if (I_IS_UFS2(ip))
- printf(", extsize %d", ip->i_din2->di_extsize);
+ if (I_IS_UFS2(ip)) {
+ if (ip->i_din2 == NULL)
+ printf(", dinode=NULL (fields omitted)");
+ else
+ printf(", extsize=%d", ip->i_din2->di_extsize);
+ }
printf("\n\tgeneration=%jx, uid=%d, gid=%d, flags=0x%b\n",
(uintmax_t)ip->i_gen, ip->i_uid, ip->i_gid,
(uint32_t)ip->i_flags, PRINT_INODE_FLAGS);