mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
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:
parent
857c06086a
commit
2099db0533
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user