lkml.org 
[lkml]   [2011]   [Jul]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH (RESEND) 07/12] nfs: Add srcaddr to /proc/fs/nfsfs/servers
Date
From: Ben Greear <greearb@candelatech.com>

Helps users understand whether a server instance is
bound to a local IP or not.

Signed-off-by: Ben Greear <greearb@candelatech.com>
---
: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


\
 
 \ /
  Last update: 2011-07-15 20:01    [W:0.048 / U:3.444 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site