From: David Howells Date: Sat, 2 Jun 2018 21:20:31 +0000 (+0100) Subject: afs: Show all of a server's addresses in /proc/fs/afs/servers X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=0aac4bce4b49e58c43181d293da491cd2bdba6c7;p=openwrt%2Fstaging%2Fblogic.git afs: Show all of a server's addresses in /proc/fs/afs/servers Show all of a server's addresses in /proc/fs/afs/servers, placing the second plus addresses on padded lines of their own. The current address is marked with a star. Signed-off-by: David Howells --- diff --git a/fs/afs/proc.c b/fs/afs/proc.c index 3512b9b66caf..0c3285c8db95 100644 --- a/fs/afs/proc.c +++ b/fs/afs/proc.c @@ -326,6 +326,7 @@ static int afs_proc_servers_show(struct seq_file *m, void *v) { struct afs_server *server; struct afs_addr_list *alist; + int i; if (v == SEQ_START_TOKEN) { seq_puts(m, "UUID USE ADDR\n"); @@ -334,10 +335,15 @@ static int afs_proc_servers_show(struct seq_file *m, void *v) server = list_entry(v, struct afs_server, proc_link); alist = rcu_dereference(server->addresses); - seq_printf(m, "%pU %3d %pISp\n", + seq_printf(m, "%pU %3d %pISpc%s\n", &server->uuid, atomic_read(&server->usage), - &alist->addrs[alist->index].transport); + &alist->addrs[0].transport, + alist->index == 0 ? "*" : ""); + for (i = 1; i < alist->nr_addrs; i++) + seq_printf(m, " %pISpc%s\n", + &alist->addrs[i].transport, + alist->index == i ? "*" : ""); return 0; }