From: cel@kernel.org
To: NeilBrown <neil@brown.name>, Jeff Layton <jlayton@kernel.org>,
Olga Kornievskaia <okorniev@redhat.com>,
Dai Ngo <dai.ngo@oracle.com>, Tom Talpey <tom@talpey.com>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
Anna Schumaker <anna@kernel.org>
Cc: sargun@sargun.me, <linux-nfs@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: [PATCH v4 05/18] nfsd: add nfsd_vfs_create tracepoints
Date: Sat, 3 May 2025 15:59:23 -0400 [thread overview]
Message-ID: <20250503195936.5083-6-cel@kernel.org> (raw)
In-Reply-To: <20250503195936.5083-1-cel@kernel.org>
From: Jeff Layton <jlayton@kernel.org>
Observe the start of file and directory creation for all NFS
versions.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
fs/nfsd/nfs3proc.c | 3 +++
fs/nfsd/trace.h | 27 +++++++++++++++++++++++++++
fs/nfsd/vfs.c | 2 ++
3 files changed, 32 insertions(+)
diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c
index 372bdcf5e07a..5d2b081072e8 100644
--- a/fs/nfsd/nfs3proc.c
+++ b/fs/nfsd/nfs3proc.c
@@ -14,6 +14,7 @@
#include "xdr3.h"
#include "vfs.h"
#include "filecache.h"
+#include "trace.h"
#define NFSDDBG_FACILITY NFSDDBG_PROC
@@ -266,6 +267,8 @@ nfsd3_create_file(struct svc_rqst *rqstp, struct svc_fh *fhp,
__be32 status;
int host_err;
+ trace_nfsd_vfs_create(rqstp, fhp, S_IFREG, argp->name, argp->len);
+
if (isdotent(argp->name, argp->len))
return nfserr_exist;
if (!(iap->ia_valid & ATTR_MODE))
diff --git a/fs/nfsd/trace.h b/fs/nfsd/trace.h
index 661a870d62f5..a71d605fd7b7 100644
--- a/fs/nfsd/trace.h
+++ b/fs/nfsd/trace.h
@@ -2417,6 +2417,33 @@ TRACE_EVENT(nfsd_vfs_lookup,
)
);
+TRACE_EVENT(nfsd_vfs_create,
+ TP_PROTO(
+ const struct svc_rqst *rqstp,
+ const struct svc_fh *fhp,
+ umode_t type,
+ const char *name,
+ unsigned int len
+ ),
+ TP_ARGS(rqstp, fhp, type, name, len),
+ TP_STRUCT__entry(
+ NFSD_TRACE_PROC_CALL_FIELDS(rqstp)
+ __field(u32, fh_hash)
+ __field(umode_t, type)
+ __string_len(name, name, len)
+ ),
+ TP_fast_assign(
+ NFSD_TRACE_PROC_CALL_ASSIGNMENTS(rqstp);
+ __entry->fh_hash = knfsd_fh_hash(&fhp->fh_handle);
+ __entry->type = type;
+ __assign_str(name);
+ ),
+ TP_printk("xid=0x%08x fh_hash=0x%08x type=%s name=%s",
+ __entry->xid, __entry->fh_hash,
+ show_fs_file_type(__entry->type), __get_str(name)
+ )
+);
+
#endif /* _NFSD_TRACE_H */
#undef TRACE_INCLUDE_PATH
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index 657ba0c2da14..cc0efc47dc25 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -1549,6 +1549,8 @@ nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp,
__be32 err;
int host_err;
+ trace_nfsd_vfs_create(rqstp, fhp, type, fname, flen);
+
if (isdotent(fname, flen))
return nfserr_exist;
--
2.49.0
next prev parent reply other threads:[~2025-05-03 19:59 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-03 19:59 [PATCH v4 00/18] nfsd: observability improvements cel
2025-05-03 19:59 ` [PATCH v4 01/18] NFSD: Use sockaddr instead of a generic array cel
2025-05-03 20:29 ` Jeff Layton
2025-05-03 19:59 ` [PATCH v4 02/18] NFSD: Add a Call equivalent to the NFSD_TRACE_PROC_RES macros cel
2025-05-03 20:30 ` Jeff Layton
2025-05-03 19:59 ` [PATCH v4 03/18] nfsd: add a tracepoint for nfsd_setattr cel
2025-05-03 19:59 ` [PATCH v4 04/18] nfsd: add a tracepoint to nfsd_lookup_dentry cel
2025-05-03 19:59 ` cel [this message]
2025-05-03 19:59 ` [PATCH v4 06/18] nfsd: add tracepoint to nfsd_symlink cel
2025-05-03 19:59 ` [PATCH v4 07/18] nfsd: add tracepoint to nfsd_link() cel
2025-05-03 20:30 ` Jeff Layton
2025-05-03 19:59 ` [PATCH v4 08/18] nfsd: add tracepoints for unlink events cel
2025-05-03 19:59 ` [PATCH v4 09/18] nfsd: add tracepoint to nfsd_rename cel
2025-05-03 19:59 ` [PATCH v4 10/18] nfsd: add tracepoint to nfsd_readdir cel
2025-05-03 19:59 ` [PATCH v4 11/18] nfsd: add tracepoint for getattr and statfs events cel
2025-05-03 19:59 ` [PATCH v4 12/18] nfsd: remove old v2/3 create path dprintks cel
2025-05-03 19:59 ` [PATCH v4 13/18] nfsd: remove old v2/3 SYMLINK dprintks cel
2025-05-03 19:59 ` [PATCH v4 14/18] nfsd: remove old LINK dprintks cel
2025-05-03 19:59 ` [PATCH v4 15/18] nfsd: remove REMOVE/RMDIR dprintks cel
2025-05-03 19:59 ` [PATCH v4 16/18] nfsd: remove dprintks for v2/3 RENAME events cel
2025-05-03 19:59 ` [PATCH v4 17/18] nfsd: remove legacy READDIR dprintks cel
2025-05-03 19:59 ` [PATCH v4 18/18] nfsd: remove legacy dprintks from GETATTR and STATFS codepaths cel
2025-05-03 20:32 ` [PATCH v4 00/18] nfsd: observability improvements 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=20250503195936.5083-6-cel@kernel.org \
--to=cel@kernel.org \
--cc=anna@kernel.org \
--cc=dai.ngo@oracle.com \
--cc=jlayton@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neil@brown.name \
--cc=okorniev@redhat.com \
--cc=sargun@sargun.me \
--cc=tom@talpey.com \
--cc=trond.myklebust@hammerspace.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.