[PATCH RESEND] scripts/gdb: Use d_shortname instead of d_iname

Illia Ostapyshyn posted 1 patch 6 months, 3 weeks ago
scripts/gdb/linux/vfs.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH RESEND] scripts/gdb: Use d_shortname instead of d_iname
Posted by Illia Ostapyshyn 6 months, 3 weeks ago
Commit 58cf9c383c5c68666808 ("dcache: back inline names with a
struct-wrapped array of unsigned long") introduced a d_shortname union
in place of d_iname.  However, the gdb scripts for vfs still reference
the old field.  Update the scripts to reference the correct field and
union member.

Signed-off-by: Illia Ostapyshyn <illia@yshyn.com>
---
 scripts/gdb/linux/vfs.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/gdb/linux/vfs.py b/scripts/gdb/linux/vfs.py
index c77b9ce75f6d..b5fbb18ccb77 100644
--- a/scripts/gdb/linux/vfs.py
+++ b/scripts/gdb/linux/vfs.py
@@ -22,7 +22,7 @@ def dentry_name(d):
     if parent == d or parent == 0:
         return ""
     p = dentry_name(d['d_parent']) + "/"
-    return p + d['d_iname'].string()
+    return p + d['d_shortname']['string'].string()
 
 class DentryName(gdb.Function):
     """Return string of the full path of a dentry.
-- 
2.49.0
Re: [PATCH RESEND] scripts/gdb: Use d_shortname instead of d_iname
Posted by Al Viro 6 months, 3 weeks ago
On Sun, May 25, 2025 at 11:37:10PM +0200, Illia Ostapyshyn wrote:
> Commit 58cf9c383c5c68666808 ("dcache: back inline names with a
> struct-wrapped array of unsigned long") introduced a d_shortname union
> in place of d_iname.  However, the gdb scripts for vfs still reference
> the old field.  Update the scripts to reference the correct field and
> union member.

You do realize that for dentries with names longer than 40 characters
that field contains garbage, right?
Re: [PATCH RESEND] scripts/gdb: Use d_shortname instead of d_iname
Posted by Illia Ostapyshyn 6 months, 3 weeks ago
On 5/25/25 23:41, Al Viro wrote:
> You do realize that for dentries with names longer than 40 characters
> that field contains garbage, right?

Is d_name.name a better choice here?  It seems to always reference the
full valid name.