diff options
| author | Ryan Libby <rlibby@FreeBSD.org> | 2025-10-01 18:25:27 +0000 |
|---|---|---|
| committer | Ryan Libby <rlibby@FreeBSD.org> | 2025-10-01 18:25:27 +0000 |
| commit | 76157a63a0c63dd7363f6c8ae60edc814b3c138a (patch) | |
| tree | 3eb863c1191c7a3ac4565714573ce8200197eb5e | |
| parent | 300aa267efaa08564337797e89590737a7cc6af0 (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.c | 8 |
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); |
