Commit 7b38f6dd authored by Steve French's avatar Steve French

smb3: display network namespace in debug information

We recently had problems where a network namespace was deleted
causing hard to debug reconnect problems.  To help deal with
configuration issues like this it is useful to dump the network
namespace to better debug what happened.

So add this to information displayed in /proc/fs/cifs/DebugData for
the server (and channels if mounted with 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 the same thing (see below), and we can see that the namespace
is still valid in this example.

   'net:[4026531840]'

Cc: stable@vger.kernel.org
Acked-by: default avatarPaulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 69513dd6
...@@ -153,6 +153,11 @@ cifs_dump_channel(struct seq_file *m, int i, struct cifs_chan *chan) ...@@ -153,6 +153,11 @@ cifs_dump_channel(struct seq_file *m, int i, struct cifs_chan *chan)
in_flight(server), in_flight(server),
atomic_read(&server->in_send), atomic_read(&server->in_send),
atomic_read(&server->num_waiters)); 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 */
} }
static inline const char *smb_speed_to_str(size_t bps) 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) ...@@ -430,10 +435,15 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
server->reconnect_instance, server->reconnect_instance,
server->srv_count, server->srv_count,
server->sec_mode, in_flight(server)); 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", seq_printf(m, "\nIn Send: %d In MaxReq Wait: %d",
atomic_read(&server->in_send), atomic_read(&server->in_send),
atomic_read(&server->num_waiters)); atomic_read(&server->num_waiters));
if (server->leaf_fullpath) { if (server->leaf_fullpath) {
seq_printf(m, "\nDFS leaf full path: %s", seq_printf(m, "\nDFS leaf full path: %s",
server->leaf_fullpath); server->leaf_fullpath);
......
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