Hi Georges, Thanks for the fix, LGTM, ack.
Thanks, Tao Liu On Fri, Sep 26, 2025 at 11:26 AM Aureau, Georges (Kernel Tools ERT) <[email protected]> wrote: > > Should read "mount | grep tmpfs" (and not "grep /tmp/test"): > > crash> mount | grep tmpfs > ffff9648e7febc00 ffff9648d91ac800 tmpfs tmpfs /tmp/test > ffff9648c9281380 ffff9648d91ac800 tmpfs tmpfs /tmp/test/ > ffff9648c8e9a700 ffff9648d91ac800 tmpfs tmpfs / > > |-----Original Message----- > |From: Aureau, Georges (Kernel Tools ERT) > |Sent: Tuesday, September 23, 2025 10:08 AM > |To: [email protected] > |Subject: [PATCH] Fix get_pathname() not handling stacked mounts > | > |[PATCH] Fix get_pathname() not handling stacked mounts > | > |This get_pathname() issue can be duplicated as follow: > | > |sudo mkdir -p /tmp/test > |sudo mount -t tmpfs tmpfs /tmp/test > |sudo mount --make-private /tmp/test > |sudo mount --bind /tmp/test /tmp/test > |sudo mount --bind /tmp/test /tmp/test > |sudo mount -o remount,ro /tmp/test > | > |$ sudo crash /usr/lib/debug/boot/vmlinux-$(uname -r) > |crash> mount | grep /tmp/test > |ffff9648e7febc00 ffff9648d91ac800 tmpfs tmpfs /tmp/test > |ffff9648c9281380 ffff9648d91ac800 tmpfs tmpfs /tmp/test/ > |ffff9648c8e9a700 ffff9648d91ac800 tmpfs tmpfs / > | > |The last mount is not printed properly, and this is impacting diagnostic > |when looking at vmcore from complex containers mount environments. > | > |Signed-off-by: Georges Aureau <[email protected]> > |-- > |diff --git a/filesys.c b/filesys.c > |index 8d13807..af6d616 100644 > |--- a/filesys.c > |+++ b/filesys.c > |@@ -3140,6 +3154,7 @@ get_pathname(ulong dentry, char *pathname, int > |length, int full, ulong vfsmnt) > | tmp_vfsmnt = vfsmnt; > | > | do { > |+ more_vfsmnt: > | tmp_dentry = parent; > | > | dentry_buf = fill_dentry_cache(tmp_dentry); > |@@ -3195,6 +3210,7 @@ get_pathname(ulong dentry, char *pathname, int > |length, int full, ulong vfsmnt) > | break; > | else > | tmp_vfsmnt = mnt_parent; > |+ goto more_vfsmnt; > | } > | } else if (VALID_STRUCT(mount)) { > | if (tmp_vfsmnt) { > |@@ -3213,6 +3229,7 @@ get_pathname(ulong dentry, char *pathname, int > |length, int full, ulong vfsmnt) > | break; > | else > | tmp_vfsmnt = mnt_parent + > |OFFSET(mount_mnt); > |+ goto more_vfsmnt; > | } > | } > | else { > |@@ -3222,6 +3239,9 @@ get_pathname(ulong dentry, char *pathname, int > |length, int full, ulong vfsmnt) > | } > | > | } while (tmp_dentry != parent && parent); > |+ if (!STREQ(pathname, "/") && LASTCHAR(pathname) == '/') { > |+ LASTCHAR(pathname) = '\0'; > |+ } > | > | if (mnt_buf) > | FREEBUF(mnt_buf); > -- > Crash-utility mailing list -- [email protected] > To unsubscribe send an email to [email protected] > https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ > Contribution Guidelines: https://github.com/crash-utility/crash/wiki -- Crash-utility mailing list -- [email protected] To unsubscribe send an email to [email protected] https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki
