From: Jan Kara <jack@suse.cz>
To: Jeff Layton <jlayton@kernel.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
Chuck Lever <chuck.lever@oracle.com>,
Alexander Aring <alex.aring@gmail.com>,
Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
NeilBrown <neil@brown.name>,
Olga Kornievskaia <okorniev@redhat.com>,
Dai Ngo <Dai.Ngo@oracle.com>, Tom Talpey <tom@talpey.com>,
Trond Myklebust <trondmy@kernel.org>,
Anna Schumaker <anna@kernel.org>,
Amir Goldstein <amir73il@gmail.com>,
Calum Mackay <calum.mackay@oracle.com>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-trace-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
linux-nfs@vger.kernel.org
Subject: Re: [PATCH v2 05/28] fsnotify: new tracepoint in fsnotify()
Date: Fri, 17 Apr 2026 13:49:09 +0200 [thread overview]
Message-ID: <64g3qra4l7o2xm37yo3fwenbob3gdyzxdptzeabzuceegkaips@lj7ulfaltfkl> (raw)
In-Reply-To: <20260416-dir-deleg-v2-5-851426a550f6@kernel.org>
On Thu 16-04-26 10:35:06, Jeff Layton wrote:
> Add a tracepoint so we can see exactly how this is being called.
>
> Signed-off-by: Jeff Layton <jlayton@kernel.org>
Looks good. Feel free to add:
Reviewed-by: Jan Kara <jack@suse.cz>
Honza
> ---
> fs/notify/fsnotify.c | 5 ++++
> include/trace/events/fsnotify.h | 51 +++++++++++++++++++++++++++++++++++++++++
> include/trace/misc/fsnotify.h | 35 ++++++++++++++++++++++++++++
> 3 files changed, 91 insertions(+)
>
> diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
> index 9995de1710e5..5448738635f6 100644
> --- a/fs/notify/fsnotify.c
> +++ b/fs/notify/fsnotify.c
> @@ -14,6 +14,9 @@
> #include <linux/fsnotify_backend.h>
> #include "fsnotify.h"
>
> +#define CREATE_TRACE_POINTS
> +#include <trace/events/fsnotify.h>
> +
> /*
> * Clear all of the marks on an inode when it is being evicted from core
> */
> @@ -504,6 +507,8 @@ int fsnotify(__u32 mask, const void *data, int data_type, struct inode *dir,
> int ret = 0;
> __u32 test_mask, marks_mask = 0;
>
> + trace_fsnotify(mask, data, data_type, dir, file_name, inode, cookie);
> +
> if (path)
> mnt = real_mount(path->mnt);
>
> diff --git a/include/trace/events/fsnotify.h b/include/trace/events/fsnotify.h
> new file mode 100644
> index 000000000000..341bbd57a39b
> --- /dev/null
> +++ b/include/trace/events/fsnotify.h
> @@ -0,0 +1,51 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +#undef TRACE_SYSTEM
> +#define TRACE_SYSTEM fsnotify
> +
> +#if !defined(_TRACE_FSNOTIFY_H) || defined(TRACE_HEADER_MULTI_READ)
> +#define _TRACE_FSNOTIFY_H
> +
> +#include <linux/tracepoint.h>
> +
> +#include <trace/misc/fsnotify.h>
> +
> +TRACE_EVENT(fsnotify,
> + TP_PROTO(__u32 mask, const void *data, int data_type,
> + struct inode *dir, const struct qstr *file_name,
> + struct inode *inode, u32 cookie),
> +
> + TP_ARGS(mask, data, data_type, dir, file_name, inode, cookie),
> +
> + TP_STRUCT__entry(
> + __field(__u32, mask)
> + __field(unsigned long, dir_ino)
> + __field(unsigned long, ino)
> + __field(dev_t, s_dev)
> + __field(int, data_type)
> + __field(u32, cookie)
> + __string(file_name, file_name ? (const char *)file_name->name : "")
> + ),
> +
> + TP_fast_assign(
> + __entry->mask = mask;
> + __entry->dir_ino = dir ? dir->i_ino : 0;
> + __entry->ino = inode ? inode->i_ino : 0;
> + __entry->s_dev = dir ? dir->i_sb->s_dev :
> + inode ? inode->i_sb->s_dev : 0;
> + __entry->data_type = data_type;
> + __entry->cookie = cookie;
> + __assign_str(file_name);
> + ),
> +
> + TP_printk("dev=%d:%d dir=%lu ino=%lu data_type=%d cookie=0x%x mask=0x%x %s name=%s",
> + MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
> + __entry->dir_ino, __entry->ino,
> + __entry->data_type, __entry->cookie,
> + __entry->mask, show_fsnotify_mask(__entry->mask),
> + __get_str(file_name))
> +);
> +
> +#endif /* _TRACE_FSNOTIFY_H */
> +
> +/* This part must be outside protection */
> +#include <trace/define_trace.h>
> diff --git a/include/trace/misc/fsnotify.h b/include/trace/misc/fsnotify.h
> new file mode 100644
> index 000000000000..a201e1bd6d8c
> --- /dev/null
> +++ b/include/trace/misc/fsnotify.h
> @@ -0,0 +1,35 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Display helpers for fsnotify events
> + */
> +
> +#include <linux/fsnotify_backend.h>
> +
> +#define show_fsnotify_mask(mask) \
> + __print_flags(mask, "|", \
> + { FS_ACCESS, "ACCESS" }, \
> + { FS_MODIFY, "MODIFY" }, \
> + { FS_ATTRIB, "ATTRIB" }, \
> + { FS_CLOSE_WRITE, "CLOSE_WRITE" }, \
> + { FS_CLOSE_NOWRITE, "CLOSE_NOWRITE" }, \
> + { FS_OPEN, "OPEN" }, \
> + { FS_MOVED_FROM, "MOVED_FROM" }, \
> + { FS_MOVED_TO, "MOVED_TO" }, \
> + { FS_CREATE, "CREATE" }, \
> + { FS_DELETE, "DELETE" }, \
> + { FS_DELETE_SELF, "DELETE_SELF" }, \
> + { FS_MOVE_SELF, "MOVE_SELF" }, \
> + { FS_OPEN_EXEC, "OPEN_EXEC" }, \
> + { FS_UNMOUNT, "UNMOUNT" }, \
> + { FS_Q_OVERFLOW, "Q_OVERFLOW" }, \
> + { FS_ERROR, "ERROR" }, \
> + { FS_OPEN_PERM, "OPEN_PERM" }, \
> + { FS_ACCESS_PERM, "ACCESS_PERM" }, \
> + { FS_OPEN_EXEC_PERM, "OPEN_EXEC_PERM" }, \
> + { FS_PRE_ACCESS, "PRE_ACCESS" }, \
> + { FS_MNT_ATTACH, "MNT_ATTACH" }, \
> + { FS_MNT_DETACH, "MNT_DETACH" }, \
> + { FS_EVENT_ON_CHILD, "EVENT_ON_CHILD" }, \
> + { FS_RENAME, "RENAME" }, \
> + { FS_DN_MULTISHOT, "DN_MULTISHOT" }, \
> + { FS_ISDIR, "ISDIR" })
>
> --
> 2.53.0
>
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
next prev parent reply other threads:[~2026-04-17 11:49 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-16 17:35 [PATCH v2 00/28] vfs/nfsd: add support for CB_NOTIFY callbacks in directory delegations Jeff Layton
2026-04-16 17:35 ` [PATCH v2 01/28] filelock: pass current blocking lease to trace_break_lease_block() rather than "new_fl" Jeff Layton
2026-04-16 17:35 ` [PATCH v2 02/28] filelock: add support for ignoring deleg breaks for dir change events Jeff Layton
2026-04-16 17:35 ` [PATCH v2 03/28] filelock: add a tracepoint to start of break_lease() Jeff Layton
2026-04-16 17:35 ` [PATCH v2 04/28] filelock: add an inode_lease_ignore_mask helper Jeff Layton
2026-04-16 17:35 ` [PATCH v2 05/28] fsnotify: new tracepoint in fsnotify() Jeff Layton
2026-04-17 11:49 ` Jan Kara [this message]
2026-04-16 17:35 ` [PATCH v2 06/28] fsnotify: add fsnotify_modify_mark_mask() Jeff Layton
2026-04-16 17:35 ` [PATCH v2 07/28] fsnotify: add FSNOTIFY_EVENT_RENAME data type Jeff Layton
2026-04-16 19:24 ` Amir Goldstein
2026-04-16 20:52 ` Jeff Layton
2026-04-17 11:56 ` Jan Kara
2026-04-16 17:35 ` [PATCH v2 08/28] nfsd: check fl_lmops in nfsd_breaker_owns_lease() Jeff Layton
2026-04-16 17:35 ` [PATCH v2 09/28] nfsd: add protocol support for CB_NOTIFY Jeff Layton
2026-04-16 17:35 ` [PATCH v2 10/28] nfs_common: add new NOTIFY4_* flags proposed in RFC8881bis Jeff Layton
2026-04-16 17:35 ` [PATCH v2 11/28] nfsd: allow nfsd to get a dir lease with an ignore mask Jeff Layton
2026-04-16 17:35 ` [PATCH v2 12/28] nfsd: update the fsnotify mark when setting or removing a dir delegation Jeff Layton
2026-04-16 17:35 ` [PATCH v2 13/28] nfsd: make nfsd4_callback_ops->prepare operation bool return Jeff Layton
2026-04-16 17:35 ` [PATCH v2 14/28] nfsd: add callback encoding and decoding linkages for CB_NOTIFY Jeff Layton
2026-04-16 17:35 ` [PATCH v2 15/28] nfsd: use RCU to protect fi_deleg_file Jeff Layton
2026-04-16 17:35 ` [PATCH v2 16/28] nfsd: add data structures for handling CB_NOTIFY Jeff Layton
2026-04-16 17:35 ` [PATCH v2 17/28] nfsd: add notification handlers for dir events Jeff Layton
2026-04-16 17:35 ` [PATCH v2 18/28] nfsd: add tracepoint to dir_event handler Jeff Layton
2026-04-16 17:35 ` [PATCH v2 19/28] nfsd: apply the notify mask to the delegation when requested Jeff Layton
2026-04-16 17:35 ` [PATCH v2 20/28] nfsd: add helper to marshal a fattr4 from completed args Jeff Layton
2026-04-16 17:35 ` [PATCH v2 21/28] nfsd: allow nfsd4_encode_fattr4_change() to work with no export Jeff Layton
2026-04-16 17:35 ` [PATCH v2 22/28] nfsd: send basic file attributes in CB_NOTIFY Jeff Layton
2026-04-16 17:35 ` [PATCH v2 23/28] nfsd: allow encoding a filehandle into fattr4 without a svc_fh Jeff Layton
2026-04-16 17:35 ` [PATCH v2 24/28] nfsd: add a fi_connectable flag to struct nfs4_file Jeff Layton
2026-04-16 17:35 ` [PATCH v2 25/28] nfsd: add the filehandle to returned attributes in CB_NOTIFY Jeff Layton
2026-04-16 17:35 ` [PATCH v2 26/28] nfsd: properly track requested child attributes Jeff Layton
2026-04-16 17:35 ` [PATCH v2 27/28] nfsd: track requested dir attributes Jeff Layton
2026-04-16 17:35 ` [PATCH v2 28/28] nfsd: add support to CB_NOTIFY for dir attribute changes Jeff Layton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=64g3qra4l7o2xm37yo3fwenbob3gdyzxdptzeabzuceegkaips@lj7ulfaltfkl \
--to=jack@suse.cz \
--cc=Dai.Ngo@oracle.com \
--cc=alex.aring@gmail.com \
--cc=amir73il@gmail.com \
--cc=anna@kernel.org \
--cc=brauner@kernel.org \
--cc=calum.mackay@oracle.com \
--cc=chuck.lever@oracle.com \
--cc=corbet@lwn.net \
--cc=jlayton@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=neil@brown.name \
--cc=okorniev@redhat.com \
--cc=rostedt@goodmis.org \
--cc=skhan@linuxfoundation.org \
--cc=tom@talpey.com \
--cc=trondmy@kernel.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).