mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 07:33:19 +02:00
smb: client: add new tracepoint to trace lease break notification
Add smb3_lease_break_enter to trace lease break notifications, recording lease state, flags, epoch, and lease key. Align smb3_lease_not_found to use the same payload and print format. Signed-off-by: Bharath SM <bharathsm@microsoft.com> Acked-by: Paulo Alcantara (Red Hat) <pc@manguebit.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
0c3813d855
commit
72595cb6da
|
|
@ -614,6 +614,15 @@ smb2_is_valid_lease_break(char *buffer, struct TCP_Server_Info *server)
|
|||
struct cifs_tcon *tcon;
|
||||
struct cifs_pending_open *open;
|
||||
|
||||
/* Trace receipt of lease break request from server */
|
||||
trace_smb3_lease_break_enter(le32_to_cpu(rsp->CurrentLeaseState),
|
||||
le32_to_cpu(rsp->Flags),
|
||||
le16_to_cpu(rsp->Epoch),
|
||||
le32_to_cpu(rsp->hdr.Id.SyncId.TreeId),
|
||||
le64_to_cpu(rsp->hdr.SessionId),
|
||||
*((u64 *)rsp->LeaseKey),
|
||||
*((u64 *)&rsp->LeaseKey[8]));
|
||||
|
||||
cifs_dbg(FYI, "Checking for lease break\n");
|
||||
|
||||
/* If server is a channel, select the primary channel */
|
||||
|
|
@ -660,10 +669,12 @@ smb2_is_valid_lease_break(char *buffer, struct TCP_Server_Info *server)
|
|||
spin_unlock(&cifs_tcp_ses_lock);
|
||||
cifs_dbg(FYI, "Can not process lease break - no lease matched\n");
|
||||
trace_smb3_lease_not_found(le32_to_cpu(rsp->CurrentLeaseState),
|
||||
le32_to_cpu(rsp->hdr.Id.SyncId.TreeId),
|
||||
le64_to_cpu(rsp->hdr.SessionId),
|
||||
*((u64 *)rsp->LeaseKey),
|
||||
*((u64 *)&rsp->LeaseKey[8]));
|
||||
le32_to_cpu(rsp->Flags),
|
||||
le16_to_cpu(rsp->Epoch),
|
||||
le32_to_cpu(rsp->hdr.Id.SyncId.TreeId),
|
||||
le64_to_cpu(rsp->hdr.SessionId),
|
||||
*((u64 *)rsp->LeaseKey),
|
||||
*((u64 *)&rsp->LeaseKey[8]));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6192,11 +6192,11 @@ SMB2_lease_break(const unsigned int xid, struct cifs_tcon *tcon,
|
|||
please_key_high = (__u64 *)(lease_key+8);
|
||||
if (rc) {
|
||||
cifs_stats_fail_inc(tcon, SMB2_OPLOCK_BREAK_HE);
|
||||
trace_smb3_lease_err(le32_to_cpu(lease_state), tcon->tid,
|
||||
trace_smb3_lease_ack_err(le32_to_cpu(lease_state), tcon->tid,
|
||||
ses->Suid, *please_key_low, *please_key_high, rc);
|
||||
cifs_dbg(FYI, "Send error in Lease Break = %d\n", rc);
|
||||
} else
|
||||
trace_smb3_lease_done(le32_to_cpu(lease_state), tcon->tid,
|
||||
trace_smb3_lease_ack_done(le32_to_cpu(lease_state), tcon->tid,
|
||||
ses->Suid, *please_key_low, *please_key_high);
|
||||
|
||||
return rc;
|
||||
|
|
|
|||
|
|
@ -1171,8 +1171,54 @@ DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \
|
|||
__u64 lease_key_high), \
|
||||
TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
|
||||
|
||||
DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
|
||||
DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found);
|
||||
DEFINE_SMB3_LEASE_DONE_EVENT(lease_ack_done);
|
||||
/* Tracepoint when a lease break request is received/entered (includes epoch and flags) */
|
||||
DECLARE_EVENT_CLASS(smb3_lease_enter_class,
|
||||
TP_PROTO(__u32 lease_state,
|
||||
__u32 flags,
|
||||
__u16 epoch,
|
||||
__u32 tid,
|
||||
__u64 sesid,
|
||||
__u64 lease_key_low,
|
||||
__u64 lease_key_high),
|
||||
TP_ARGS(lease_state, flags, epoch, tid, sesid, lease_key_low, lease_key_high),
|
||||
TP_STRUCT__entry(
|
||||
__field(__u32, lease_state)
|
||||
__field(__u32, flags)
|
||||
__field(__u16, epoch)
|
||||
__field(__u32, tid)
|
||||
__field(__u64, sesid)
|
||||
__field(__u64, lease_key_low)
|
||||
__field(__u64, lease_key_high)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->lease_state = lease_state;
|
||||
__entry->flags = flags;
|
||||
__entry->epoch = epoch;
|
||||
__entry->tid = tid;
|
||||
__entry->sesid = sesid;
|
||||
__entry->lease_key_low = lease_key_low;
|
||||
__entry->lease_key_high = lease_key_high;
|
||||
),
|
||||
TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x flags=0x%x epoch=%u",
|
||||
__entry->sesid, __entry->tid, __entry->lease_key_high,
|
||||
__entry->lease_key_low, __entry->lease_state, __entry->flags, __entry->epoch)
|
||||
)
|
||||
|
||||
#define DEFINE_SMB3_LEASE_ENTER_EVENT(name) \
|
||||
DEFINE_EVENT(smb3_lease_enter_class, smb3_##name, \
|
||||
TP_PROTO(__u32 lease_state, \
|
||||
__u32 flags, \
|
||||
__u16 epoch, \
|
||||
__u32 tid, \
|
||||
__u64 sesid, \
|
||||
__u64 lease_key_low, \
|
||||
__u64 lease_key_high), \
|
||||
TP_ARGS(lease_state, flags, epoch, tid, sesid, lease_key_low, lease_key_high))
|
||||
|
||||
DEFINE_SMB3_LEASE_ENTER_EVENT(lease_break_enter);
|
||||
/* Lease not found: reuse lease_enter payload (includes epoch and flags) */
|
||||
DEFINE_SMB3_LEASE_ENTER_EVENT(lease_not_found);
|
||||
|
||||
DECLARE_EVENT_CLASS(smb3_lease_err_class,
|
||||
TP_PROTO(__u32 lease_state,
|
||||
|
|
@ -1213,7 +1259,7 @@ DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \
|
|||
int rc), \
|
||||
TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
|
||||
|
||||
DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
|
||||
DEFINE_SMB3_LEASE_ERR_EVENT(lease_ack_err);
|
||||
|
||||
DECLARE_EVENT_CLASS(smb3_connect_class,
|
||||
TP_PROTO(char *hostname,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user