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)
committerChuck Lever <chuck.lever@oracle.com>
Thu, 19 May 2022 16:25:38 +0000 (12:25 -0400)
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>
include/trace/events/sunrpc.h

index 3995c58..ee84e92 100644 (file)
@@ -2015,19 +2015,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) \