Add some extra visibility around the fsnotify handlers. Signed-off-by: Jeff Layton --- fs/nfsd/nfs4state.c | 2 ++ fs/nfsd/trace.h | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 339c3d0bb575..f3bf572b0ada 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -9963,6 +9963,8 @@ nfsd_handle_dir_event(u32 mask, const struct inode *dir, const void *data, struct file_lock_core *flc; struct nfsd_notify_event *evt; + trace_nfsd_file_fsnotify_handle_dir_event(mask, dir, name); + /* Don't do anything if this is not an expected event */ if (!(mask & (FS_CREATE|FS_DELETE|FS_RENAME))) return 0; diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 60cacf64181c..3302cb926254 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -1377,6 +1377,26 @@ TRACE_EVENT(nfsd_file_fsnotify_handle_event, __entry->nlink, __entry->mode, __entry->mask) ); +TRACE_EVENT(nfsd_file_fsnotify_handle_dir_event, + TP_PROTO(u32 mask, const struct inode *dir, const struct qstr *name), + TP_ARGS(mask, dir, name), + TP_STRUCT__entry( + __field(u32, mask) + __field(dev_t, s_dev) + __field(ino_t, i_ino) + __string_len(name, name->name, name->len) + ), + TP_fast_assign( + __entry->mask = mask; + __entry->s_dev = dir->i_sb->s_dev; + __entry->i_ino = dir->i_ino; + __assign_str(name); + ), + TP_printk("inode=0x%x:0x%x:0x%lx mask=0x%x name=%s", + MAJOR(__entry->s_dev), MINOR(__entry->s_dev), + __entry->i_ino, __entry->mask, __get_str(name)) +); + DECLARE_EVENT_CLASS(nfsd_file_gc_class, TP_PROTO( const struct nfsd_file *nf -- 2.53.0