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 f3d3e3faf7d5f1b2ee39abb7eabd2fa406bbac21..2147b5f80ca0e650e9dbdb63de7c9af6f4bc7bff 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -9796,6 +9796,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); + ctx = locks_inode_context(dir); if (!ctx || list_empty(&ctx->flc_lease)) return 0; diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h index 01380425347b946bbf5a70a2ba10190ae4ec6303..d8b6d87f1ec09ca80fe4218fd79aaa803a316619 100644 --- a/fs/nfsd/trace.h +++ b/fs/nfsd/trace.h @@ -1311,6 +1311,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.51.0