RE: [PATCH v3 3/3] CIFS: dump IPC tcon in debug proc file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




2018-01-24 4:46 GMT-08:00 Aurelien Aptel <aaptel@xxxxxxxx>:
> dump it as first share with an "IPC: " prefix.
>
> Signed-off-by: Aurelien Aptel <aaptel@xxxxxxxx>
> ---
>  fs/cifs/cifs_debug.c | 61 ++++++++++++++++++++++++++++++----------------------
>  1 file changed, 35 insertions(+), 26 deletions(-)
>
> diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
> index 05be9b47eb0c..f491340f32ad 100644
> --- a/fs/cifs/cifs_debug.c
> +++ b/fs/cifs/cifs_debug.c
> @@ -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 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
>
>                         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");
> --
> 2.12.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reviewed-by: Pavel Shilovsky <pshilov@xxxxxxxxxxxxx>

--
Best regards,
Pavel Shilovsky
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux