Add some extra visibility around the fsnotify handlers.

Signed-off-by: Jeff Layton <[email protected]>
---
 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


Reply via email to