smb: smbdirect: introduce smbdirect_socket.workqueue
authorStefan Metzmacher <metze@samba.org>
Fri, 22 Aug 2025 10:22:24 +0000 (12:22 +0200)
committerSteve French <stfrench@microsoft.com>
Sun, 28 Sep 2025 23:29:48 +0000 (18:29 -0500)
The client currently used a per socket workqueue
because it can block in a work function
waiting for credits.

So we use a per socket pointer in order to prepare
common code.

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 649d66c..b0efa5a 100644 (file)
@@ -51,6 +51,14 @@ struct smbdirect_socket {
        enum smbdirect_socket_status status;
        wait_queue_head_t status_wait;
 
+       /*
+        * This points to the workqueue to
+        * be used for this socket.
+        * It can be per socket (on the client)
+        * or point to a global workqueue (on the server)
+        */
+       struct workqueue_struct *workqueue;
+
        struct work_struct disconnect_work;
 
        /* RDMA related */