CIFS: dump IPC tcon in debug proc file
dump it as first share with an "IPC: " prefix. Signed-off-by: Aurelien Aptel <aaptel@suse.com> Signed-off-by: Steve French <smfrench@gmail.com> Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
This commit is contained in:
parent
63a83b861c
commit
02cf5905e3
|
@ -110,6 +110,32 @@ void cifs_dump_mids(struct TCP_Server_Info *server)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
static void cifs_debug_tcon(struct seq_file *m, struct cifs_tcon *tcon)
|
||||
{
|
||||
__u32 dev_type = le32_to_cpu(tcon->fsDevInfo.DeviceType);
|
||||
|
||||
seq_printf(m, "%s Mounts: %d ", tcon->treeName, tcon->tc_count);
|
||||
if (tcon->nativeFileSystem)
|
||||
seq_printf(m, "Type: %s ", tcon->nativeFileSystem);
|
||||
seq_printf(m, "DevInfo: 0x%x Attributes: 0x%x\n\tPathComponentMax: %d Status: %d",
|
||||
le32_to_cpu(tcon->fsDevInfo.DeviceCharacteristics),
|
||||
le32_to_cpu(tcon->fsAttrInfo.Attributes),
|
||||
le32_to_cpu(tcon->fsAttrInfo.MaxPathNameComponentLength),
|
||||
tcon->tidStatus);
|
||||
if (dev_type == FILE_DEVICE_DISK)
|
||||
seq_puts(m, " type: DISK ");
|
||||
else if (dev_type == FILE_DEVICE_CD_ROM)
|
||||
seq_puts(m, " type: CDROM ");
|
||||
else
|
||||
seq_printf(m, " type: %d ", dev_type);
|
||||
if (tcon->ses->server->ops->dump_share_caps)
|
||||
tcon->ses->server->ops->dump_share_caps(m, tcon);
|
||||
|
||||
if (tcon->need_reconnect)
|
||||
seq_puts(m, "\tDISCONNECTED ");
|
||||
seq_putc(m, '\n');
|
||||
}
|
||||
|
||||
static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
|
||||
{
|
||||
struct list_head *tmp1, *tmp2, *tmp3;
|
||||
|
@ -118,7 +144,6 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
|
|||
struct cifs_ses *ses;
|
||||
struct cifs_tcon *tcon;
|
||||
int i, j;
|
||||
__u32 dev_type;
|
||||
|
||||
seq_puts(m,
|
||||
"Display Internal CIFS Data Structures for Debugging\n"
|
||||
|
@ -260,35 +285,19 @@ skip_rdma:
|
|||
|
||||
seq_puts(m, "\n\tShares:");
|
||||
j = 0;
|
||||
|
||||
seq_printf(m, "\n\t%d) IPC: ", j);
|
||||
if (ses->tcon_ipc)
|
||||
cifs_debug_tcon(m, ses->tcon_ipc);
|
||||
else
|
||||
seq_puts(m, "none\n");
|
||||
|
||||
list_for_each(tmp3, &ses->tcon_list) {
|
||||
tcon = list_entry(tmp3, struct cifs_tcon,
|
||||
tcon_list);
|
||||
++j;
|
||||
dev_type = le32_to_cpu(tcon->fsDevInfo.DeviceType);
|
||||
seq_printf(m, "\n\t%d) %s Mounts: %d ", j,
|
||||
tcon->treeName, tcon->tc_count);
|
||||
if (tcon->nativeFileSystem) {
|
||||
seq_printf(m, "Type: %s ",
|
||||
tcon->nativeFileSystem);
|
||||
}
|
||||
seq_printf(m, "DevInfo: 0x%x Attributes: 0x%x"
|
||||
"\n\tPathComponentMax: %d Status: %d",
|
||||
le32_to_cpu(tcon->fsDevInfo.DeviceCharacteristics),
|
||||
le32_to_cpu(tcon->fsAttrInfo.Attributes),
|
||||
le32_to_cpu(tcon->fsAttrInfo.MaxPathNameComponentLength),
|
||||
tcon->tidStatus);
|
||||
if (dev_type == FILE_DEVICE_DISK)
|
||||
seq_puts(m, " type: DISK ");
|
||||
else if (dev_type == FILE_DEVICE_CD_ROM)
|
||||
seq_puts(m, " type: CDROM ");
|
||||
else
|
||||
seq_printf(m, " type: %d ", dev_type);
|
||||
if (server->ops->dump_share_caps)
|
||||
server->ops->dump_share_caps(m, tcon);
|
||||
|
||||
if (tcon->need_reconnect)
|
||||
seq_puts(m, "\tDISCONNECTED ");
|
||||
seq_putc(m, '\n');
|
||||
seq_printf(m, "\n\t%d) ", j);
|
||||
cifs_debug_tcon(m, tcon);
|
||||
}
|
||||
|
||||
seq_puts(m, "\n\tMIDs:\n");
|
||||
|
|
Loading…
Reference in New Issue