[PATCH v1 v1 2/7] ntfs3: add namei tracepoints
From: Baolin Liu
Date: Thu Jul 16 2026 - 23:28:04 EST
From: Baolin Liu <liubaolin@xxxxxxxxxx>
Add ntfs3 tracepoints for namei operations.
This adds trace events for ntfs_lookup() and ntfs_rename()
to help observe directory lookup and rename activity.
Signed-off-by: Baolin Liu <liubaolin@xxxxxxxxxx>
---
fs/ntfs3/namei.c | 5 ++++
include/trace/events/ntfs3.h | 47 ++++++++++++++++++++++++++++++++++++
2 files changed, 52 insertions(+)
diff --git a/fs/ntfs3/namei.c b/fs/ntfs3/namei.c
index c59de5f2fa97..c1523decee32 100644
--- a/fs/ntfs3/namei.c
+++ b/fs/ntfs3/namei.c
@@ -13,6 +13,7 @@
#include "debug.h"
#include "ntfs.h"
#include "ntfs_fs.h"
+#include <trace/events/ntfs3.h>
/*
* fill_name_de - Format NTFS_DE in @buf.
@@ -72,6 +73,8 @@ static struct dentry *ntfs_lookup(struct inode *dir, struct dentry *dentry,
struct inode *inode;
int err;
+ trace_ntfs3_lookup(dir, dentry);
+
if (!uni)
inode = ERR_PTR(-ENOMEM);
else {
@@ -275,6 +278,8 @@ static int ntfs_rename(struct mnt_idmap *idmap, struct inode *dir,
if (unlikely(ntfs3_forced_shutdown(sb)))
return -EIO;
+ trace_ntfs3_rename(dir, dentry, new_dir, new_dentry);
+
if (flags & ~RENAME_NOREPLACE)
return -EINVAL;
diff --git a/include/trace/events/ntfs3.h b/include/trace/events/ntfs3.h
index d00f66e42ba8..ba27531d889e 100644
--- a/include/trace/events/ntfs3.h
+++ b/include/trace/events/ntfs3.h
@@ -80,6 +80,53 @@ TRACE_EVENT(ntfs3_log_replay,
__entry->size, __entry->initialized, __entry->err)
);
+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;
+ ),
+ 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)
+);
+
+TRACE_EVENT(ntfs3_rename,
+ TP_PROTO(struct inode *dir, struct dentry *dentry,
+ struct inode *new_dir, struct dentry *new_dentry),
+ TP_ARGS(dir, dentry, new_dir, new_dentry),
+ TP_STRUCT__entry(
+ __field(dev_t, dev)
+ __field(unsigned long, dir_ino)
+ __field(unsigned long, new_dir_ino)
+ __field(unsigned long, ino)
+ __string(old_name, dentry->d_name.name)
+ __string(new_name, new_dentry->d_name.name)
+ ),
+ TP_fast_assign(
+ __entry->dev = dir->i_sb->s_dev;
+ __entry->dir_ino = dir->i_ino;
+ __entry->new_dir_ino = new_dir->i_ino;
+ __entry->ino = d_inode(dentry)->i_ino;
+ __assign_str(old_name);
+ __assign_str(new_name);
+ ),
+ TP_printk("dev=(%d,%d) dir=%lu new_dir=%lu ino=%lu old=%s new=%s",
+ MAJOR(__entry->dev), MINOR(__entry->dev),
+ __entry->dir_ino, __entry->new_dir_ino, __entry->ino,
+ __get_str(old_name), __get_str(new_name))
+);
+
#endif /* _TRACE_NTFS3_H */
#include <trace/define_trace.h>
--
2.51.0