]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
NFSD: Add a tracepoint to record canceled async COPY operations
authorChuck Lever <chuck.lever@oracle.com>
Thu, 31 Oct 2024 13:40:02 +0000 (09:40 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Tue, 19 Nov 2024 01:23:09 +0000 (20:23 -0500)
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4proc.c
fs/nfsd/trace.h

index 94cc7b2ac385fceabc8a7c70b2d197cefdd4b5e9..ca383ebc179073fd8e3ad49f3673e30e25d54a40 100644 (file)
@@ -1287,6 +1287,7 @@ static void nfs4_put_copy(struct nfsd4_copy *copy)
 
 static void nfsd4_stop_copy(struct nfsd4_copy *copy)
 {
+       trace_nfsd_copy_async_cancel(copy);
        if (!test_and_set_bit(NFSD4_COPY_F_STOPPED, &copy->cp_flags))
                kthread_stop(copy->copy_task);
        nfs4_put_copy(copy);
index f318898cfc31614b5a84a4867e18c2b3a07122c9..6b7bf8129e4910119959e4c97916991671287837 100644 (file)
@@ -2244,7 +2244,7 @@ TRACE_EVENT(nfsd_copy_done,
        )
 );
 
-TRACE_EVENT(nfsd_copy_async_done,
+DECLARE_EVENT_CLASS(nfsd_copy_async_done_class,
        TP_PROTO(
                const struct nfsd4_copy *copy
        ),
@@ -2313,6 +2313,15 @@ TRACE_EVENT(nfsd_copy_async_done,
        )
 );
 
+#define DEFINE_COPY_ASYNC_DONE_EVENT(name)             \
+DEFINE_EVENT(nfsd_copy_async_done_class,               \
+       nfsd_copy_async_##name,                         \
+       TP_PROTO(const struct nfsd4_copy *copy),        \
+       TP_ARGS(copy))
+
+DEFINE_COPY_ASYNC_DONE_EVENT(done);
+DEFINE_COPY_ASYNC_DONE_EVENT(cancel);
+
 #endif /* _NFSD_TRACE_H */
 
 #undef TRACE_INCLUDE_PATH