Commit 85150929 authored by Aurelien Aptel's avatar Aurelien Aptel Committed by Steve French

cifs: dump channel info in DebugData

* show server&TCP states for extra channels
* mention if an interface has a channel connected to it

In this version three of the patch, fixed minor printk format
issue pointed out by the kbuild robot.
Reported-by: default avatarkbuild test robot <lkp@intel.com>
Signed-off-by: default avatarAurelien Aptel <aaptel@suse.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 1ae9a5a5
...@@ -121,6 +121,27 @@ static void cifs_debug_tcon(struct seq_file *m, struct cifs_tcon *tcon) ...@@ -121,6 +121,27 @@ static void cifs_debug_tcon(struct seq_file *m, struct cifs_tcon *tcon)
seq_putc(m, '\n'); seq_putc(m, '\n');
} }
static void
cifs_dump_channel(struct seq_file *m, int i, struct cifs_chan *chan)
{
struct TCP_Server_Info *server = chan->server;
seq_printf(m, "\t\tChannel %d Number of credits: %d Dialect 0x%x "
"TCP status: %d Instance: %d Local Users To Server: %d "
"SecMode: 0x%x Req On Wire: %d In Send: %d "
"In MaxReq Wait: %d\n",
i+1,
server->credits,
server->dialect,
server->tcpStatus,
server->reconnect_instance,
server->srv_count,
server->sec_mode,
in_flight(server),
atomic_read(&server->in_send),
atomic_read(&server->num_waiters));
}
static void static void
cifs_dump_iface(struct seq_file *m, struct cifs_server_iface *iface) cifs_dump_iface(struct seq_file *m, struct cifs_server_iface *iface)
{ {
...@@ -376,6 +397,13 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v) ...@@ -376,6 +397,13 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
if (ses->sign) if (ses->sign)
seq_puts(m, " signed"); seq_puts(m, " signed");
if (ses->chan_count > 1) {
seq_printf(m, "\n\n\tExtra Channels: %zu\n",
ses->chan_count-1);
for (j = 1; j < ses->chan_count; j++)
cifs_dump_channel(m, j, &ses->chans[j]);
}
seq_puts(m, "\n\tShares:"); seq_puts(m, "\n\tShares:");
j = 0; j = 0;
...@@ -414,8 +442,13 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v) ...@@ -414,8 +442,13 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
seq_printf(m, "\n\tServer interfaces: %zu\n", seq_printf(m, "\n\tServer interfaces: %zu\n",
ses->iface_count); ses->iface_count);
for (j = 0; j < ses->iface_count; j++) { for (j = 0; j < ses->iface_count; j++) {
struct cifs_server_iface *iface;
iface = &ses->iface_list[j];
seq_printf(m, "\t%d)", j); seq_printf(m, "\t%d)", j);
cifs_dump_iface(m, &ses->iface_list[j]); cifs_dump_iface(m, iface);
if (is_ses_using_iface(ses, iface))
seq_puts(m, "\t\t[CONNECTED]\n");
} }
spin_unlock(&ses->iface_lock); spin_unlock(&ses->iface_lock);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment