From a3d500c14394bd76a6874d60a271bb8db8f4c868 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Mon, 6 Nov 2017 13:41:06 -0800 Subject: [PATCH] scoutfs: add rename trace point Signed-off-by: Zach Brown --- kmod/src/dir.c | 2 ++ kmod/src/scoutfs_trace.h | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/kmod/src/dir.c b/kmod/src/dir.c index b869fb7b..3aa361d9 100644 --- a/kmod/src/dir.c +++ b/kmod/src/dir.c @@ -1397,6 +1397,8 @@ static int scoutfs_rename(struct inode *old_dir, struct dentry *old_dentry, int ret; int err; + trace_scoutfs_rename(sb, old_dir, old_dentry, new_dir, new_dentry); + if (new_dentry->d_name.len > SCOUTFS_NAME_LEN) return -ENAMETOOLONG; diff --git a/kmod/src/scoutfs_trace.h b/kmod/src/scoutfs_trace.h index 4a4beeaa..167794e4 100644 --- a/kmod/src/scoutfs_trace.h +++ b/kmod/src/scoutfs_trace.h @@ -1778,6 +1778,44 @@ TRACE_EVENT(scoutfs_item_shrink_around, __get_str(last), __get_str(next)) ); +TRACE_EVENT(scoutfs_rename, + TP_PROTO(struct super_block *sb, struct inode *old_dir, + struct dentry *old_dentry, struct inode *new_dir, + struct dentry *new_dentry), + + TP_ARGS(sb, old_dir, old_dentry, new_dir, new_dentry), + + TP_STRUCT__entry( + __field(__u64, fsid) + __field(__u64, old_dir_ino) + __field(char *, old_name) + __field(unsigned int, old_name_len) + __field(__u64, new_dir_ino) + __field(char *, new_name) + __field(unsigned int, new_name_len) + __field(__u64, new_inode_ino) + ), + + TP_fast_assign( + __entry->fsid = FSID_ARG(sb); + __entry->old_dir_ino = scoutfs_ino(old_dir); + __entry->old_name = (char *)old_dentry->d_name.name; + __entry->old_name_len = old_dentry->d_name.len; + __entry->new_dir_ino = scoutfs_ino(new_dir); + __entry->new_name = (char *)new_dentry->d_name.name; + __entry->new_name_len = new_dentry->d_name.len; + __entry->new_inode_ino = new_dentry->d_inode ? + scoutfs_ino(new_dentry->d_inode) : 0; + ), + + TP_printk("fsid "FSID_FMT" old_dir_ino %llu old_name %.*s (len %u) new_dir_ino %llu new_name %.*s (len %u) new_inode_ino %llu", + __entry->fsid, __entry->old_dir_ino, __entry->old_name_len, + __entry->old_name, __entry->old_name_len, + __entry->new_dir_ino, __entry->new_name_len, + __entry->new_name, __entry->new_name_len, + __entry->new_inode_ino) +); + #endif /* _TRACE_SCOUTFS_H */ /* This part must be outside protection */