]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
cifs: Add the smb3_read_* tracepoints to SMB1
authorDavid Howells <dhowells@redhat.com>
Fri, 24 Oct 2025 15:33:43 +0000 (16:33 +0100)
committerSteve French <stfrench@microsoft.com>
Thu, 20 Nov 2025 09:12:05 +0000 (03:12 -0600)
Add the smb3_read_* tracepoints to SMB1's cifs_async_readv() and
cifs_readv_callback().

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Steve French <sfrench@samba.org>
cc: Paulo Alcantara <pc@manguebit.org>
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/cifssmb.c

index 7da194f29fefc8ce08dd23f2b5243a40e360cfea..dcc50a2bfa4b239943771289ad2996e262d5bdef 100644 (file)
@@ -1363,6 +1363,14 @@ do_retry:
        if (rdata->result == -ENODATA) {
                rdata->result = 0;
                __set_bit(NETFS_SREQ_HIT_EOF, &rdata->subreq.flags);
+               trace_smb3_read_err(rdata->rreq->debug_id,
+                                   rdata->subreq.debug_index,
+                                   rdata->xid,
+                                   rdata->req->cfile->fid.persistent_fid,
+                                   tcon->tid, tcon->ses->Suid,
+                                   rdata->subreq.start + rdata->subreq.transferred,
+                                   rdata->subreq.len   - rdata->subreq.transferred,
+                                   rdata->result);
        } else {
                size_t trans = rdata->subreq.transferred + rdata->got_bytes;
                if (trans < rdata->subreq.len &&
@@ -1374,6 +1382,13 @@ do_retry:
                }
                if (rdata->got_bytes)
                        __set_bit(NETFS_SREQ_MADE_PROGRESS, &rdata->subreq.flags);
+               trace_smb3_read_done(rdata->rreq->debug_id,
+                                    rdata->subreq.debug_index,
+                                    rdata->xid,
+                                    rdata->req->cfile->fid.persistent_fid,
+                                    tcon->tid, tcon->ses->Suid,
+                                    rdata->subreq.start + rdata->subreq.transferred,
+                                    rdata->got_bytes);
        }
 
        trace_smb3_rw_credits(rreq_debug_id, subreq_debug_index, rdata->credits.value,
@@ -1445,6 +1460,13 @@ cifs_async_readv(struct cifs_io_subrequest *rdata)
        rdata->iov[1].iov_base = (char *)smb + 4;
        rdata->iov[1].iov_len = get_rfc1002_length(smb);
 
+       trace_smb3_read_enter(rdata->rreq->debug_id,
+                             rdata->subreq.debug_index,
+                             rdata->xid,
+                             rdata->req->cfile->fid.netfid,
+                             tcon->tid, tcon->ses->Suid,
+                             rdata->subreq.start, rdata->subreq.len);
+
        rc = cifs_call_async(tcon->ses->server, &rqst, cifs_readv_receive,
                             cifs_readv_callback, NULL, rdata, 0, NULL);