]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
smb: client: introduce and use smbd_mr_fill_buffer_descriptor()
authorStefan Metzmacher <metze@samba.org>
Tue, 21 Oct 2025 18:43:44 +0000 (20:43 +0200)
committerSteve French <stfrench@microsoft.com>
Thu, 16 Apr 2026 02:58:22 +0000 (21:58 -0500)
This will allow us to make struct smbdirect_mr_io private in future.

Cc: Steve French <smfrench@gmail.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Long Li <longli@microsoft.com>
Cc: Namjae Jeon <linkinjeon@kernel.org>
Cc: linux-cifs@vger.kernel.org
Cc: samba-technical@lists.samba.org
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/smb2pdu.c
fs/smb/client/smbdirect.c
fs/smb/client/smbdirect.h

index 59d7418cc480639776a11fe358eadc733d61af2e..0aeb23aed8eb7d6918b17319ad3cd7d1f61f5904 100644 (file)
@@ -4554,9 +4554,7 @@ smb2_new_read_req(void **buf, unsigned int *total_len,
                req->ReadChannelInfoLength =
                        cpu_to_le16(sizeof(struct smbdirect_buffer_descriptor_v1));
                v1 = (struct smbdirect_buffer_descriptor_v1 *) &req->Buffer[0];
-               v1->offset = cpu_to_le64(rdata->mr->mr->iova);
-               v1->token = cpu_to_le32(rdata->mr->mr->rkey);
-               v1->length = cpu_to_le32(rdata->mr->mr->length);
+               smbd_mr_fill_buffer_descriptor(rdata->mr, v1);
 
                *total_len += sizeof(*v1) - 1;
        }
@@ -5155,9 +5153,7 @@ smb2_async_writev(struct cifs_io_subrequest *wdata)
                req->WriteChannelInfoLength =
                        cpu_to_le16(sizeof(struct smbdirect_buffer_descriptor_v1));
                v1 = (struct smbdirect_buffer_descriptor_v1 *) &req->Buffer[0];
-               v1->offset = cpu_to_le64(wdata->mr->mr->iova);
-               v1->token = cpu_to_le32(wdata->mr->mr->rkey);
-               v1->length = cpu_to_le32(wdata->mr->mr->length);
+               smbd_mr_fill_buffer_descriptor(wdata->mr, v1);
 
                rqst.rq_iov[0].iov_len += sizeof(*v1);
 
index ee3347289c8730a9d6b6445c8feb29df75410508..93a91d4e0da5949988c6ffd267f0e376c2dbda31 100644 (file)
@@ -1294,6 +1294,12 @@ struct smbdirect_mr_io *smbd_register_mr(struct smbd_connection *info,
        return smbdirect_connection_register_mr_io(sc, iter, writing, need_invalidate);
 }
 
+void smbd_mr_fill_buffer_descriptor(struct smbdirect_mr_io *mr,
+                                   struct smbdirect_buffer_descriptor_v1 *v1)
+{
+       smbdirect_mr_io_fill_buffer_descriptor(mr, v1);
+}
+
 /*
  * Deregister a MR after I/O is done
  * This function may wait if remote invalidation is not used
index 577d37dbeb8a341750530060a078c08b2928e3bb..09f7dd14b2c10a95c05a51c6869eb60b3062afa3 100644 (file)
@@ -60,6 +60,8 @@ int smbd_send(struct TCP_Server_Info *server,
 struct smbdirect_mr_io *smbd_register_mr(
        struct smbd_connection *info, struct iov_iter *iter,
        bool writing, bool need_invalidate);
+void smbd_mr_fill_buffer_descriptor(struct smbdirect_mr_io *mr,
+                                   struct smbdirect_buffer_descriptor_v1 *v1);
 void smbd_deregister_mr(struct smbdirect_mr_io *mr);
 
 #else