NFS: Refactor trace_nfs4_offload_cancel
authorChuck Lever <chuck.lever@oracle.com>
Mon, 13 Jan 2025 15:32:42 +0000 (10:32 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 17 Mar 2025 20:51:53 +0000 (16:51 -0400)
Add a trace_nfs4_offload_status trace point that looks just like
trace_nfs4_offload_cancel. Promote that event to an event class to
avoid duplicating code.

An alternative approach would be to expand trace_nfs4_offload_status
to report more of the actual OFFLOAD_STATUS result.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Link: https://lore.kernel.org/r/20250113153235.48706-16-cel@kernel.org
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/nfs42proc.c
fs/nfs/nfs4trace.h

index 82ada136ee6a96c97784a532e277ee597d0c4a60..5cf52ece96ac1c30ad0cb2cea1ae6a9c5315907c 100644 (file)
@@ -648,6 +648,7 @@ _nfs42_proc_offload_status(struct nfs_server *server, struct file *file,
        status = nfs4_call_sync(server->client, server, &msg,
                                &data->args.osa_seq_args,
                                &data->res.osr_seq_res, 1);
+       trace_nfs4_offload_status(&data->args, status);
        switch (status) {
        case 0:
                break;
index 22c973316f0bdd83bddf324e9a78bdfab76c5847..bc67fe6801b138204641319ecaf1115aac76af62 100644 (file)
@@ -2608,7 +2608,7 @@ TRACE_EVENT(nfs4_copy_notify,
                )
 );
 
-TRACE_EVENT(nfs4_offload_cancel,
+DECLARE_EVENT_CLASS(nfs4_offload_class,
                TP_PROTO(
                        const struct nfs42_offload_status_args *args,
                        int error
@@ -2640,6 +2640,15 @@ TRACE_EVENT(nfs4_offload_cancel,
                        __entry->stateid_seq, __entry->stateid_hash
                )
 );
+#define DEFINE_NFS4_OFFLOAD_EVENT(name) \
+       DEFINE_EVENT(nfs4_offload_class, name,  \
+                       TP_PROTO( \
+                               const struct nfs42_offload_status_args *args, \
+                               int error \
+                       ), \
+                       TP_ARGS(args, error))
+DEFINE_NFS4_OFFLOAD_EVENT(nfs4_offload_cancel);
+DEFINE_NFS4_OFFLOAD_EVENT(nfs4_offload_status);
 
 DECLARE_EVENT_CLASS(nfs4_xattr_event,
                TP_PROTO(