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 <dhowells@xxxxxxxxxx> --- fs/afs/proc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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; }