ntfs3: add namei tracepoints

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@kylinos.cn>
Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
Baolin Liu 2026-08-20 17:04:59 +08:00 committed by Konstantin Komarov
parent 857c06086a
commit 2099db0533
No known key found for this signature in database
GPG Key ID: A9B0331F832407B6
2 changed files with 49 additions and 0 deletions

View File

@ -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.
@ -77,6 +78,8 @@ static struct dentry *ntfs_lookup(struct inode *dir, struct dentry *dentry,
struct inode *inode;
int err;
trace_ntfs3_lookup(dir, dentry);
if (!uni)
return ERR_PTR(-ENOMEM);
@ -299,6 +302,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;

View File

@ -80,6 +80,50 @@ 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(unsigned long, parent_ino)
__field(dev_t, dev)
__string(name, dentry->d_name.name)
),
TP_fast_assign(
__entry->parent_ino = dir->i_ino;
__entry->dev = dir->i_sb->s_dev;
__assign_str(name);
),
TP_printk("dev=(%d,%d) parent=%lu name=%s",
MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->parent_ino, __get_str(name))
);
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(unsigned long, dir_ino)
__field(unsigned long, new_dir_ino)
__field(unsigned long, ino)
__field(dev_t, dev)
__string(old_name, dentry->d_name.name)
__string(new_name, new_dentry->d_name.name)
),
TP_fast_assign(
__entry->dir_ino = dir->i_ino;
__entry->new_dir_ino = new_dir->i_ino;
__entry->ino = d_inode(dentry)->i_ino;
__entry->dev = dir->i_sb->s_dev;
__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>