summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2025-08-26 15:32:48 +0200
committerSteve French <stfrench@microsoft.com>2026-04-15 21:58:22 -0500
commit4624f1bf1b79bd50ddbd1178aa741b8a7afba5b0 (patch)
tree4149bf06a5c8f28c644486901fffb58d0628b7aa /fs
parent6acc747906c5b87657dc313ff6cb777d805a6ec4 (diff)
downloadlwn-4624f1bf1b79bd50ddbd1178aa741b8a7afba5b0.tar.gz
lwn-4624f1bf1b79bd50ddbd1178aa741b8a7afba5b0.zip
smb: server: make use of smbdirect_socket_prepare_create()
This prepares the use of functions from smbdirect_connection.c. Cc: Namjae Jeon <linkinjeon@kernel.org> Cc: Steve French <smfrench@gmail.com> Cc: Tom Talpey <tom@talpey.com> 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>
Diffstat (limited to 'fs')
-rw-r--r--fs/smb/server/transport_rdma.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/fs/smb/server/transport_rdma.c b/fs/smb/server/transport_rdma.c
index 2978b8850082..55514ce348ac 100644
--- a/fs/smb/server/transport_rdma.c
+++ b/fs/smb/server/transport_rdma.c
@@ -422,20 +422,14 @@ static struct smb_direct_transport *alloc_transport(struct rdma_cm_id *cm_id)
{
struct smb_direct_transport *t;
struct smbdirect_socket *sc;
+ struct smbdirect_socket_parameters init_params = {};
struct smbdirect_socket_parameters *sp;
struct ksmbd_conn *conn;
- t = kzalloc_obj(*t, KSMBD_DEFAULT_GFP);
- if (!t)
- return NULL;
- sc = &t->socket;
- smbdirect_socket_init(sc);
- sp = &sc->parameters;
-
- sc->workqueue = smb_direct_wq;
-
- INIT_WORK(&sc->disconnect_work, smb_direct_disconnect_rdma_work);
-
+ /*
+ * Create the initial parameters
+ */
+ sp = &init_params;
sp->negotiate_timeout_msec = SMB_DIRECT_NEGOTIATE_TIMEOUT * 1000;
sp->initiator_depth = SMB_DIRECT_CM_INITIATOR_DEPTH;
sp->responder_resources = 1;
@@ -448,6 +442,18 @@ static struct smb_direct_transport *alloc_transport(struct rdma_cm_id *cm_id)
sp->keepalive_interval_msec = SMB_DIRECT_KEEPALIVE_SEND_INTERVAL * 1000;
sp->keepalive_timeout_msec = SMB_DIRECT_KEEPALIVE_RECV_TIMEOUT * 1000;
+ t = kzalloc_obj(*t, KSMBD_DEFAULT_GFP);
+ if (!t)
+ return NULL;
+ sc = &t->socket;
+ smbdirect_socket_prepare_create(sc, sp, smb_direct_wq);
+ /*
+ * from here we operate on the copy.
+ */
+ sp = &sc->parameters;
+
+ INIT_WORK(&sc->disconnect_work, smb_direct_disconnect_rdma_work);
+
sc->rdma.cm_id = cm_id;
cm_id->context = sc;