From: Ben Greear <greearb@xxxxxxxxxxxxxxx> Helps users understand whether a server instance is bound to a local IP or not. Signed-off-by: Ben Greear <greearb@xxxxxxxxxxxxxxx> --- :100644 100644 5d8998a... 223785f... M fs/nfs/client.c fs/nfs/client.c | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 deletions(-) diff --git a/fs/nfs/client.c b/fs/nfs/client.c index 5d8998a..223785f 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c @@ -1895,20 +1895,34 @@ static int nfs_server_list_show(struct seq_file *m, void *v) /* display header on line 1 */ if (v == &nfs_client_list) { - seq_puts(m, "NV SERVER PORT USE HOSTNAME\n"); + seq_puts(m, "NV SERVER PORT USE HOSTNAME" + " SRCADDR\n"); return 0; } /* display one transport per line on subsequent lines */ clp = list_entry(v, struct nfs_client, cl_share_link); - seq_printf(m, "v%u %s %s %3d %s\n", + seq_printf(m, "v%u %s %s %3d %s", clp->rpc_ops->version, rpc_peeraddr2str(clp->cl_rpcclient, RPC_DISPLAY_HEX_ADDR), rpc_peeraddr2str(clp->cl_rpcclient, RPC_DISPLAY_HEX_PORT), atomic_read(&clp->cl_count), clp->cl_hostname); + if (clp->srcaddr.ss_family == AF_INET) { + const struct sockaddr_in *sin; + sin = (const struct sockaddr_in *)&clp->srcaddr; + seq_printf(m, " %pI4\n", &sin->sin_addr.s_addr); + } else if (clp->srcaddr.ss_family == AF_INET6) { + const struct sockaddr_in6 *sin6; + sin6 = (const struct sockaddr_in6 *)&clp->srcaddr; + seq_printf(m, " %pI6c\n", &sin6->sin6_addr); + } else if (clp->srcaddr.ss_family == AF_UNSPEC) + seq_printf(m, " ANY\n"); + else + seq_printf(m, " UNKNOWN_%i\n", (int)(clp->srcaddr.ss_family)); + return 0; } -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html