nfs: print fileid in lookup tracepoints
authorJeff Layton <jlayton@kernel.org>
Fri, 3 Nov 2023 10:10:51 +0000 (06:10 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 4 Jan 2024 15:47:56 +0000 (10:47 -0500)
With this we can see the dentry -> inode linkage that's being
revalidated. A fileid of 0 means "negative dentry".

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/nfstrace.h

index 8ad1bed0929529ba59c7791996ca616efa2c8165..de3adc4a2ce0b3dd03757ae7069d207608fa2824 100644 (file)
@@ -400,6 +400,7 @@ DECLARE_EVENT_CLASS(nfs_lookup_event,
                        __field(unsigned long, flags)
                        __field(dev_t, dev)
                        __field(u64, dir)
+                       __field(u64, fileid)
                        __string(name, dentry->d_name.name)
                ),
 
@@ -407,16 +408,18 @@ DECLARE_EVENT_CLASS(nfs_lookup_event,
                        __entry->dev = dir->i_sb->s_dev;
                        __entry->dir = NFS_FILEID(dir);
                        __entry->flags = flags;
+                       __entry->fileid = d_is_negative(dentry) ? 0 : NFS_FILEID(d_inode(dentry));
                        __assign_str(name, dentry->d_name.name);
                ),
 
                TP_printk(
-                       "flags=0x%lx (%s) name=%02x:%02x:%llu/%s",
+                       "flags=0x%lx (%s) name=%02x:%02x:%llu/%s fileid=%llu",
                        __entry->flags,
                        show_fs_lookup_flags(__entry->flags),
                        MAJOR(__entry->dev), MINOR(__entry->dev),
                        (unsigned long long)__entry->dir,
-                       __get_str(name)
+                       __get_str(name),
+                       __entry->fileid
                )
 );
 
@@ -444,6 +447,7 @@ DECLARE_EVENT_CLASS(nfs_lookup_event_done,
                        __field(unsigned long, flags)
                        __field(dev_t, dev)
                        __field(u64, dir)
+                       __field(u64, fileid)
                        __string(name, dentry->d_name.name)
                ),
 
@@ -452,17 +456,19 @@ DECLARE_EVENT_CLASS(nfs_lookup_event_done,
                        __entry->dir = NFS_FILEID(dir);
                        __entry->error = error < 0 ? -error : 0;
                        __entry->flags = flags;
+                       __entry->fileid = d_is_negative(dentry) ? 0 : NFS_FILEID(d_inode(dentry));
                        __assign_str(name, dentry->d_name.name);
                ),
 
                TP_printk(
-                       "error=%ld (%s) flags=0x%lx (%s) name=%02x:%02x:%llu/%s",
+                       "error=%ld (%s) flags=0x%lx (%s) name=%02x:%02x:%llu/%s fileid=%llu",
                        -__entry->error, show_nfs_status(__entry->error),
                        __entry->flags,
                        show_fs_lookup_flags(__entry->flags),
                        MAJOR(__entry->dev), MINOR(__entry->dev),
                        (unsigned long long)__entry->dir,
-                       __get_str(name)
+                       __get_str(name),
+                       __entry->fileid
                )
 );