[RFC PATCH 22/36] cifs: Trace smb1/2_copy_to_prepped_buffers()
From: David Howells
Date: Tue May 19 2026 - 06:33:09 EST
Add a tracepoint to smb1/2_copy_to_prepped_buffers() so that bulk data
read (such as a Read op) can be checked.
Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
cc: Steve French <sfrench@xxxxxxxxx>
cc: Paulo Alcantara <pc@xxxxxxxxxxxxx>
cc: Shyam Prasad N <sprasad@xxxxxxxxxxxxx>
cc: linux-cifs@xxxxxxxxxxxxxxx
cc: netfs@xxxxxxxxxxxxxxx
cc: linux-fsdevel@xxxxxxxxxxxxxxx
---
fs/smb/client/smb1transport.c | 1 +
fs/smb/client/smb2transport.c | 1 +
fs/smb/client/trace.h | 21 +++++++++++++++++++++
3 files changed, 23 insertions(+)
diff --git a/fs/smb/client/smb1transport.c b/fs/smb/client/smb1transport.c
index ba887284fadd..598579b564ae 100644
--- a/fs/smb/client/smb1transport.c
+++ b/fs/smb/client/smb1transport.c
@@ -829,6 +829,7 @@ static void smb1_copy_to_prepped_buffers(struct TCP_Server_Info *server,
return;
}
+ trace_smb3_copy_to_buf(smb, &dest, skip, to_copy);
if (!rxq->refillable) {
size_t got;
diff --git a/fs/smb/client/smb2transport.c b/fs/smb/client/smb2transport.c
index 404bb8b1b3c3..73db90ab8a52 100644
--- a/fs/smb/client/smb2transport.c
+++ b/fs/smb/client/smb2transport.c
@@ -1236,6 +1236,7 @@ static void smb2_copy_to_prepped_buffers(struct TCP_Server_Info *server,
return;
}
+ trace_smb3_copy_to_buf(smb, &dest, skip, to_copy);
if (!rxq->refillable) {
size_t got;
diff --git a/fs/smb/client/trace.h b/fs/smb/client/trace.h
index 2cdbd8249af0..e9abcc5cf83a 100644
--- a/fs/smb/client/trace.h
+++ b/fs/smb/client/trace.h
@@ -2117,6 +2117,27 @@ TRACE_EVENT(smb3_message,
__entry->ref)
);
+TRACE_EVENT(smb3_copy_to_buf,
+ TP_PROTO(const struct smb_message *smb, const struct iov_iter *dest,
+ unsigned int msg_offset, unsigned int len),
+ TP_ARGS(smb, dest, msg_offset, len),
+ TP_STRUCT__entry(
+ __field(unsigned int, smb_message)
+ __field(unsigned int, dest_len)
+ __field(unsigned int, msg_offset)
+ __field(unsigned int, len)
+ ),
+ TP_fast_assign(
+ __entry->smb_message = smb->debug_id;
+ __entry->dest_len = iov_iter_count(dest);
+ __entry->msg_offset = msg_offset;
+ __entry->len = len;
+ ),
+ TP_printk("MSG=%08x m=%x sl=%x dl=%x",
+ __entry->smb_message,
+ __entry->msg_offset, __entry->len, __entry->dest_len)
+ );
+
#undef EM
#undef E_
#endif /* _CIFS_TRACE_H */