Commit 16720861 authored by Chuck Lever's avatar Chuck Lever
Browse files

SUNRPC: Fix sockaddr handling in svcsock_accept_class trace points



Avoid potentially hazardous memory copying and the needless use of
"%pIS" -- in the kernel, an RPC service listener is always bound to
ANYADDR. Having the network namespace is helpful when recording
errors, though.

Fixes: a0469f46 ("SUNRPC: Replace dprintk call sites in TCP state change callouts")
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent dc6c6fb3
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -2125,17 +2125,17 @@ DECLARE_EVENT_CLASS(svcsock_accept_class,
	TP_STRUCT__entry(
		__field(long, status)
		__string(service, service)
		__array(unsigned char, addr, sizeof(struct sockaddr_in6))
		__field(unsigned int, netns_ino)
	),

	TP_fast_assign(
		__entry->status = status;
		__assign_str(service, service);
		memcpy(__entry->addr, &xprt->xpt_local, sizeof(__entry->addr));
		__entry->netns_ino = xprt->xpt_net->ns.inum;
	),

	TP_printk("listener=%pISpc service=%s status=%ld",
		__entry->addr, __get_str(service), __entry->status
	TP_printk("addr=listener service=%s status=%ld",
		__get_str(service), __entry->status
	)
);