]> Git Repo - linux.git/commitdiff
cifs: new dynamic tracepoint to track ses not found errors
authorShyam Prasad N <[email protected]>
Tue, 27 Jun 2023 06:22:20 +0000 (06:22 +0000)
committerSteve French <[email protected]>
Thu, 29 Jun 2023 14:58:09 +0000 (09:58 -0500)
It is perfectly valid to not find session not found errors
when a reconnect of a session happens when requests for the
same session are happening in parallel.

We had these log messages as VFS logs. My last change dumped
these logs as FYI logs.

This change just creates a new dynamic tracepoint to capture
events of this type, just in case it is useful while
debugging issues in the future.

Signed-off-by: Shyam Prasad N <[email protected]>
Signed-off-by: Steve French <[email protected]>
fs/smb/client/smb2ops.c
fs/smb/client/smb2transport.c
fs/smb/client/trace.h

index 7f8e07c42d4c83ba1e68ee7fde71edb57da1d2e7..eb1340b9125e27bfdd9265f5e97d72c254f192a8 100644 (file)
@@ -4414,6 +4414,8 @@ smb2_get_enc_key(struct TCP_Server_Info *server, __u64 ses_id, int enc, u8 *key)
        }
        spin_unlock(&cifs_tcp_ses_lock);
 
+       trace_smb3_ses_not_found(ses_id);
+
        return -EAGAIN;
 }
 /*
index c3e9cb5c7be5e926367eeab7e7694d1284e08b86..c6db898dab7c437fe19fe795acd8531a79c7ac23 100644 (file)
@@ -92,6 +92,7 @@ int smb2_get_sign_key(__u64 ses_id, struct TCP_Server_Info *server, u8 *key)
                if (ses->Suid == ses_id)
                        goto found;
        }
+       trace_smb3_ses_not_found(ses_id);
        cifs_server_dbg(FYI, "%s: Could not find session 0x%llx\n",
                        __func__, ses_id);
        rc = -ENOENT;
index d3053bd8ae7312656b04fe97063f50c7c8938a24..e671bd16f00c556e97279b8ce6c066a5dd12de96 100644 (file)
@@ -1003,6 +1003,26 @@ DEFINE_EVENT(smb3_reconnect_class, smb3_##name,  \
 DEFINE_SMB3_RECONNECT_EVENT(reconnect);
 DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
 
+DECLARE_EVENT_CLASS(smb3_ses_class,
+       TP_PROTO(__u64  sesid),
+       TP_ARGS(sesid),
+       TP_STRUCT__entry(
+               __field(__u64, sesid)
+       ),
+       TP_fast_assign(
+               __entry->sesid = sesid;
+       ),
+       TP_printk("sid=0x%llx",
+               __entry->sesid)
+)
+
+#define DEFINE_SMB3_SES_EVENT(name)        \
+DEFINE_EVENT(smb3_ses_class, smb3_##name,  \
+       TP_PROTO(__u64  sesid),                         \
+       TP_ARGS(sesid))
+
+DEFINE_SMB3_SES_EVENT(ses_not_found);
+
 DECLARE_EVENT_CLASS(smb3_credit_class,
        TP_PROTO(__u64  currmid,
                __u64 conn_id,
This page took 0.063539 seconds and 4 git commands to generate.