]> git.itanic.dy.fi Git - linux-stable/commitdiff
SUNRPC: Clean up svc_deferred_class trace events
authorChuck Lever <chuck.lever@oracle.com>
Thu, 14 Apr 2022 19:50:12 +0000 (15:50 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 May 2023 16:36:50 +0000 (17:36 +0100)
[ Upstream commit 45cb7955c180a2a34d291e68938250c4f9bd294f ]

Replace the temporary fix from commit 4d5004451ab2 ("SUNRPC: Fix the
svc_deferred_event trace class") with the use of __sockaddr and
friends, which is the preferred solution (but only available in 5.18
and newer).

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Stable-dep-of: 948f072ada23 ("SUNRPC: always free ctxt when freeing deferred request")
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/trace/events/sunrpc.h

index 2a598fb45bf4f47264081ed334f38a557a7b1e5a..d49426c0444c905e79f7e45fe79375cc059ff897 100644 (file)
@@ -1923,19 +1923,18 @@ DECLARE_EVENT_CLASS(svc_deferred_event,
        TP_STRUCT__entry(
                __field(const void *, dr)
                __field(u32, xid)
-               __array(__u8, addr, INET6_ADDRSTRLEN + 10)
+               __sockaddr(addr, dr->addrlen)
        ),
 
        TP_fast_assign(
                __entry->dr = dr;
                __entry->xid = be32_to_cpu(*(__be32 *)(dr->args +
                                                       (dr->xprt_hlen>>2)));
-               snprintf(__entry->addr, sizeof(__entry->addr) - 1,
-                        "%pISpc", (struct sockaddr *)&dr->addr);
+               __assign_sockaddr(addr, &dr->addr, dr->addrlen);
        ),
 
-       TP_printk("addr=%s dr=%p xid=0x%08x", __entry->addr, __entry->dr,
-               __entry->xid)
+       TP_printk("addr=%pISpc dr=%p xid=0x%08x", __get_sockaddr(addr),
+               __entry->dr, __entry->xid)
 );
 
 #define DEFINE_SVC_DEFERRED_EVENT(name) \