]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
sunrpc: add netns inum and srcaddr to debugfs rpc_xprt info
authorJeff Layton <jlayton@kernel.org>
Wed, 22 Jan 2025 15:18:12 +0000 (10:18 -0500)
committerAnna Schumaker <anna.schumaker@oracle.com>
Wed, 22 Jan 2025 20:53:31 +0000 (15:53 -0500)
The output format should provide a value that matches the one in
the /proc/<pid>/ns/net symlink. This makes it simpler to match the
rpc_xprt and rpc_clnt to a particular container.

Also, when the xprt defines the get_srcaddr operation, use that to
display the source address as well.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
net/sunrpc/debugfs.c

index e4a4c547c70c1707863b79bf957c8436b7b433a4..32417db340de3775c533d0ad683b5b37800d7fe5 100644 (file)
@@ -182,6 +182,18 @@ xprt_info_show(struct seq_file *f, void *v)
        seq_printf(f, "addr:  %s\n", xprt->address_strings[RPC_DISPLAY_ADDR]);
        seq_printf(f, "port:  %s\n", xprt->address_strings[RPC_DISPLAY_PORT]);
        seq_printf(f, "state: 0x%lx\n", xprt->state);
+       seq_printf(f, "netns: %u\n", xprt->xprt_net->ns.inum);
+
+       if (xprt->ops->get_srcaddr) {
+               int ret, buflen;
+               char buf[INET6_ADDRSTRLEN];
+
+               buflen = ARRAY_SIZE(buf);
+               ret = xprt->ops->get_srcaddr(xprt, buf, buflen);
+               if (ret < 0)
+                       ret = sprintf(buf, "<closed>");
+               seq_printf(f, "saddr: %.*s\n", ret, buf);
+       }
        return 0;
 }