Skip to content

Commit

Permalink
cifs: new dynamic tracepoint to track ses not found errors
Browse files Browse the repository at this point in the history
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 <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
  • Loading branch information
Shyam Prasad N authored and Steve French committed Jun 29, 2023
1 parent ac615db commit 61986a5
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 0 deletions.
2 changes: 2 additions & 0 deletions fs/smb/client/smb2ops.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
/*
Expand Down
1 change: 1 addition & 0 deletions fs/smb/client/smb2transport.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
20 changes: 20 additions & 0 deletions fs/smb/client/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 61986a5

Please sign in to comment.