49 lines
1.6 KiB
Diff
49 lines
1.6 KiB
Diff
|
From 88a4910d95d43a01151ad1d570035b96893bc7f1 Mon Sep 17 00:00:00 2001
|
||
|
From: Lianbo Jiang <lijiang@redhat.com>
|
||
|
Date: Wed, 21 Dec 2022 17:09:08 +0800
|
||
|
Subject: [PATCH 07/28] Fix "mount" command to appropriately display the mount
|
||
|
dumps
|
||
|
|
||
|
Recently the following failure has been observed on some vmcores when
|
||
|
using the mount command:
|
||
|
|
||
|
crash> mount
|
||
|
MOUNT SUPERBLK TYPE DEVNAME DIRNAME
|
||
|
ffff97a4818a3480 ffff979500013800 rootfs none /
|
||
|
ffff97e4846ca700 ffff97e484653000 sysfs sysfs /sys
|
||
|
...
|
||
|
ffff97b484753420 0 mount: invalid kernel virtual address: 0 type: "super_block buffer"
|
||
|
|
||
|
The kernel virtual address of the super_block is zero when the mount
|
||
|
command fails with the vfsmnt address 0xffff97b484753420. And the
|
||
|
remaining mount information will be discarded. That is not expected.
|
||
|
|
||
|
Check the address and skip it with a warning, if this is an invalid
|
||
|
kernel virtual address, that can avoid truncating the remaining mount
|
||
|
dumps.
|
||
|
|
||
|
Reported-by: Dave Wysochanski <dwysocha@redhat.com>
|
||
|
Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
|
||
|
---
|
||
|
filesys.c | 4 ++++
|
||
|
1 file changed, 4 insertions(+)
|
||
|
|
||
|
diff --git a/filesys.c b/filesys.c
|
||
|
index c2ea78de821d..d64b54a9b822 100644
|
||
|
--- a/filesys.c
|
||
|
+++ b/filesys.c
|
||
|
@@ -1491,6 +1491,10 @@ show_mounts(ulong one_vfsmount, int flags, struct task_context *namespace_contex
|
||
|
}
|
||
|
|
||
|
sbp = ULONG(vfsmount_buf + OFFSET(vfsmount_mnt_sb));
|
||
|
+ if (!IS_KVADDR(sbp)) {
|
||
|
+ error(WARNING, "cannot get super_block from vfsmnt: 0x%lx\n", *vfsmnt);
|
||
|
+ continue;
|
||
|
+ }
|
||
|
|
||
|
if (flags)
|
||
|
fprintf(fp, "%s", mount_hdr);
|
||
|
--
|
||
|
2.37.1
|
||
|
|