]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
smb: smbdirect: introduce struct smbdirect_mr_io
authorStefan Metzmacher <metze@samba.org>
Thu, 21 Aug 2025 14:16:47 +0000 (16:16 +0200)
committerSteve French <stfrench@microsoft.com>
Sun, 28 Sep 2025 23:29:48 +0000 (18:29 -0500)
This will be used by the client in order to maintain
memory registrations.

Cc: Steve French <smfrench@gmail.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Long Li <longli@microsoft.com>
Acked-by: 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>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/common/smbdirect/smbdirect_socket.h

index b0efa5a26016e403c651e94686277199ac52d1bc..f220891ab290dbe9a0e3357a7e39bc7cada742b7 100644 (file)
@@ -334,6 +334,32 @@ struct smbdirect_recv_io {
        u8 packet[];
 };
 
+enum smbdirect_mr_state {
+       SMBDIRECT_MR_READY,
+       SMBDIRECT_MR_REGISTERED,
+       SMBDIRECT_MR_INVALIDATED,
+       SMBDIRECT_MR_ERROR
+};
+
+struct smbdirect_mr_io {
+       struct smbdirect_socket *socket;
+       struct ib_cqe cqe;
+
+       struct list_head list;
+
+       enum smbdirect_mr_state state;
+       struct ib_mr *mr;
+       struct sg_table sgt;
+       enum dma_data_direction dir;
+       union {
+               struct ib_reg_wr wr;
+               struct ib_send_wr inv_wr;
+       };
+
+       bool need_invalidate;
+       struct completion invalidate_done;
+};
+
 struct smbdirect_rw_io {
        struct smbdirect_socket *socket;
        struct ib_cqe cqe;