Dear Steve,
dentry->d_name.len is the qstr length and does not include the trailing NUL, so it corresponds to strlen(dentry->d_name.name), rather than strlen(dentry->d_name.name) + 1. If you think the extra name_len field here is unnecessary, I can submit a v2 patch to drop it. Looking forward to your feedback.

Best regards,
Baolin


在 2026/7/22 05:09, Steven Rostedt 写道:
On Fri, 17 Jul 2026 11:22:43 +0800
Baolin Liu <[email protected]> wrote:

+TRACE_EVENT(ntfs3_lookup,
+       TP_PROTO(struct inode *dir, struct dentry *dentry),
+       TP_ARGS(dir, dentry),
+       TP_STRUCT__entry(
+               __field(dev_t, dev)
+               __field(unsigned long, parent_ino)
+               __string(name, dentry->d_name.name)
+               __field(unsigned int, name_len)
+       ),
+       TP_fast_assign(
+               __entry->dev = dir->i_sb->s_dev;
+               __entry->parent_ino = dir->i_ino;
+               __assign_str(name);
+               __entry->name_len = dentry->d_name.len;

Is dentry->d_name.len not equal to strlen(dentry->d_name.name) + 1 ?

-- Steve


+       ),
+       TP_printk("dev=(%d,%d) parent=%lu name=%s len=%u",
+                 MAJOR(__entry->dev), MINOR(__entry->dev),
+                 __entry->parent_ino, __get_str(name),
+                 __entry->name_len)
+);


Reply via email to