Commit 16720861 authored by Chuck Lever's avatar Chuck Lever

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
...@@ -2125,17 +2125,17 @@ DECLARE_EVENT_CLASS(svcsock_accept_class, ...@@ -2125,17 +2125,17 @@ DECLARE_EVENT_CLASS(svcsock_accept_class,
TP_STRUCT__entry( TP_STRUCT__entry(
__field(long, status) __field(long, status)
__string(service, service) __string(service, service)
__array(unsigned char, addr, sizeof(struct sockaddr_in6)) __field(unsigned int, netns_ino)
), ),
TP_fast_assign( TP_fast_assign(
__entry->status = status; __entry->status = status;
__assign_str(service, service); __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", TP_printk("addr=listener service=%s status=%ld",
__entry->addr, __get_str(service), __entry->status __get_str(service), __entry->status
) )
); );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment