diff mbox series

[SMB3] display network namespace in debug information

Message ID CAH2r5msH+At+cAU8kPKaOjxnmHvMO=9wUaCvNmibCK+He7HO-Q@mail.gmail.com
State New
Headers show
Series [SMB3] display network namespace in debug information | expand

Commit Message

Steve French Aug. 11, 2023, 2:55 a.m. UTC
We recently had problems where a network namespace was deleted
    causing problems for reconnect.  To help deal with problems
    like this it is useful to dump the network namespace to debug
    what happened.

    Add this to information displayed in /proc/fs/cifs/DebugData for
    the server (and channels if mounted if multichannel). For example:

       Local Users To Server: 1 SecMode: 0x1 Req On Wire: 0 Net
namespace: 4026531840

    This can be easily compared with what is displayed for the
    processes on the system. For example /proc/1/ns/net in this case
    showed and we can see that the namespace is still valid.

       'net:[4026531840]'

    Signed-off-by: Steve French <stfrench@microsoft.com>

 static inline const char *smb_speed_to_str(size_t bps)
@@ -430,10 +435,15 @@ static int cifs_debug_data_proc_show(struct
seq_file *m, void *v)
                                server->reconnect_instance,
                                server->srv_count,
                                server->sec_mode, in_flight(server));
+#ifdef CONFIG_NET_NS
+               if (server->net)
+                       seq_printf(m, " Net namespace: %u ",
server->net->ns.inum);
+#endif /* NET_NS */

                seq_printf(m, "\nIn Send: %d In MaxReq Wait: %d",
                                atomic_read(&server->in_send),
                                atomic_read(&server->num_waiters));
+
                if (server->leaf_fullpath) {
                        seq_printf(m, "\nDFS leaf full path: %s",
                                   server->leaf_fullpath);


--
Thanks,

Steve
diff mbox series

Patch

diff --git a/fs/smb/client/cifs_debug.c b/fs/smb/client/cifs_debug.c
index fb4162a52844..aec6e9137474 100644
--- a/fs/smb/client/cifs_debug.c
+++ b/fs/smb/client/cifs_debug.c
@@ -153,6 +153,11 @@  cifs_dump_channel(struct seq_file *m, int i,
struct cifs_chan *chan)
                   in_flight(server),
                   atomic_read(&server->in_send),
                   atomic_read(&server->num_waiters));
+#ifdef CONFIG_NET_NS
+       if (server->net)
+               seq_printf(m, " Net namespace: %u ", server->net->ns.inum);
+#endif /* NET_NS */
+
 }