summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2025-11-04 19:35:46 +0300
committerSteve French <stfrench@microsoft.com>2026-04-16 05:58:24 +0300
commit649c47559a37fdefefc259ab580b537abbc79fbd (patch)
treea2a7684bfaf60ef3de16a2fa1dc3e7a497e1af41
parent73dc52d2942ccf4d4f680176c1e7f36aadba4ce8 (diff)
downloadlinux-649c47559a37fdefefc259ab580b537abbc79fbd.tar.xz
smb: server: no longer use smbdirect_socket_set_custom_workqueue()
smbdirect.ko has global workqueues now, so we should use these default once. 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>
-rw-r--r--fs/smb/server/connection.c1
-rw-r--r--fs/smb/server/transport_rdma.c30
-rw-r--r--fs/smb/server/transport_rdma.h2
3 files changed, 0 insertions, 33 deletions
diff --git a/fs/smb/server/connection.c b/fs/smb/server/connection.c
index 708fac40b8ea..a26899d12df1 100644
--- a/fs/smb/server/connection.c
+++ b/fs/smb/server/connection.c
@@ -562,6 +562,5 @@ void ksmbd_conn_transport_destroy(void)
ksmbd_tcp_destroy();
ksmbd_rdma_stop_listening();
stop_sessions();
- ksmbd_rdma_destroy();
mutex_unlock(&init_lock);
}
diff --git a/fs/smb/server/transport_rdma.c b/fs/smb/server/transport_rdma.c
index 951ac9fec687..706a2c897948 100644
--- a/fs/smb/server/transport_rdma.c
+++ b/fs/smb/server/transport_rdma.c
@@ -85,8 +85,6 @@ static struct smb_direct_listener {
struct smbdirect_socket *socket;
} smb_direct_ib_listener, smb_direct_iw_listener;
-static struct workqueue_struct *smb_direct_wq;
-
struct smb_direct_transport {
struct ksmbd_transport transport;
@@ -451,12 +449,6 @@ static int smb_direct_listen(struct smb_direct_listener *listener,
ret, ERR_PTR(ret));
goto err;
}
- ret = smbdirect_socket_set_custom_workqueue(sc, smb_direct_wq);
- if (ret) {
- pr_err("Failed smbdirect_socket_set_custom_workqueue(): %d %1pe\n",
- ret, ERR_PTR(ret));
- goto err;
- }
ret = smbdirect_socket_bind(sc, (struct sockaddr *)&sin);
if (ret) {
@@ -500,19 +492,6 @@ int ksmbd_rdma_init(void)
.socket = NULL,
};
- /* When a client is running out of send credits, the credits are
- * granted by the server's sending a packet using this queue.
- * This avoids the situation that a clients cannot send packets
- * for lack of credits
- */
- smb_direct_wq = alloc_workqueue("ksmbd-smb_direct-wq",
- WQ_HIGHPRI | WQ_MEM_RECLAIM | WQ_PERCPU,
- 0);
- if (!smb_direct_wq) {
- ret = -ENOMEM;
- goto err;
- }
-
ret = smb_direct_listen(&smb_direct_ib_listener,
SMB_DIRECT_PORT_INFINIBAND);
if (ret) {
@@ -536,7 +515,6 @@ int ksmbd_rdma_init(void)
return 0;
err:
ksmbd_rdma_stop_listening();
- ksmbd_rdma_destroy();
return ret;
}
@@ -546,14 +524,6 @@ void ksmbd_rdma_stop_listening(void)
smb_direct_listener_destroy(&smb_direct_iw_listener);
}
-void ksmbd_rdma_destroy(void)
-{
- if (smb_direct_wq) {
- destroy_workqueue(smb_direct_wq);
- smb_direct_wq = NULL;
- }
-}
-
bool ksmbd_rdma_capable_netdev(struct net_device *netdev)
{
u8 node_type = smbdirect_netdev_rdma_capable_node_type(netdev);
diff --git a/fs/smb/server/transport_rdma.h b/fs/smb/server/transport_rdma.h
index e16f625caed2..05352dc47f95 100644
--- a/fs/smb/server/transport_rdma.h
+++ b/fs/smb/server/transport_rdma.h
@@ -14,14 +14,12 @@
#ifdef CONFIG_SMB_SERVER_SMBDIRECT
int ksmbd_rdma_init(void);
void ksmbd_rdma_stop_listening(void);
-void ksmbd_rdma_destroy(void);
bool ksmbd_rdma_capable_netdev(struct net_device *netdev);
void init_smbd_max_io_size(unsigned int sz);
unsigned int get_smbd_max_read_write_size(struct ksmbd_transport *kt);
#else
static inline int ksmbd_rdma_init(void) { return 0; }
static inline void ksmbd_rdma_stop_listening(void) { }
-static inline void ksmbd_rdma_destroy(void) { }
static inline bool ksmbd_rdma_capable_netdev(struct net_device *netdev) { return false; }
static inline void init_smbd_max_io_size(unsigned int sz) { }
static inline unsigned int get_smbd_max_read_write_size(struct ksmbd_transport *kt) { return 0; }