cifs: return DFS root session id in DebugData
authorPaulo Alcantara <pc@manguebit.com>
Tue, 14 Mar 2023 23:32:55 +0000 (20:32 -0300)
committerSteve French <stfrench@microsoft.com>
Thu, 1 Jun 2023 04:22:31 +0000 (23:22 -0500)
Return the DFS root session id in /proc/fs/cifs/DebugData to make it
easier to track which IPC tcon was used to get new DFS referrals for a
specific connection, and aids in debugging.

A simple output of it would be

  Sessions:
  1) Address: 192.168.1.13 Uses: 1 Capability: 0x300067   Session Status: 1
  Security type: RawNTLMSSP  SessionId: 0xd80000000009
  User: 0 Cred User: 0
  DFS root session id: 0x128006c000035

Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Cc: stable@vger.kernel.org # 6.2
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/cifs_debug.c

index 1911f7016fa1d5e747681f6df06e75a27a6db199..19a70a69c760389c4c4d912b74c97ffad5d053fc 100644 (file)
@@ -420,6 +420,11 @@ skip_rdma:
                                   from_kuid(&init_user_ns, ses->linux_uid),
                                   from_kuid(&init_user_ns, ses->cred_uid));
 
+                       if (ses->dfs_root_ses) {
+                               seq_printf(m, "\n\tDFS root session id: 0x%llx",
+                                          ses->dfs_root_ses->Suid);
+                       }
+
                        spin_lock(&ses->chan_lock);
                        if (CIFS_CHAN_NEEDS_RECONNECT(ses, 0))
                                seq_puts(m, "\tPrimary channel: DISCONNECTED ");