From: Stefan Metzmacher <metze@samba.org>
To: linux-cifs@vger.kernel.org, samba-technical@lists.samba.org
Cc: metze@samba.org, Steve French <smfrench@gmail.com>,
Tom Talpey <tom@talpey.com>, Long Li <longli@microsoft.com>,
Namjae Jeon <linkinjeon@kernel.org>
Subject: [PATCH 00/18] smbdirect/client/server: improved error handling and other small improvements
Date: Sun, 21 Sep 2025 23:44:47 +0200 [thread overview]
Message-ID: <cover.1758489988.git.metze@samba.org> (raw)
Hi,
here are some patches basically on top of the other
smbdirect patches, which let us use common structures, see:
https://lore.kernel.org/linux-cifs/cover.1756139607.git.metze@samba.org/
They improve the error handling in all kind of situations,
we now consistently reset SMBDIRECT_SOCKET_CONNECTED on
the first error and wake up all waiters to notice
the state change.
We also disable all work consistently on error.
We consistently use spin_lock_irq{save,restore}() now.
There are also some improvements in order to make
further refactoring easier:
- E.g. move ib_alloc_pd() and ib_dma_map_single() on the client.
- On the server use ib_alloc_cq_any()
- let smb_direct_flush_send_list() invalidate a remote key in
the first message
Some of these are already in Steve's for-next-next branch.
I'll soon provide a branch that can replace for-next-next,
as some of these patches should be moved before some existing
patches, while dropping some of the patches from for-next-next.
So that we only have patches for 6.18 included, the rest will
be deferred to 6.19.
Stefan Metzmacher (18):
smb: smbdirect/client: introduce SMBDIRECT_SOCKET_ERROR
smb: smbdirect: let smbdirect_socket_init() initialize all
[delayed_]work_structs as disabled
smb: smbdirect: introduce smbdirect_socket.first_error
smb: client: let smbd_disconnect_rdma_connection() set
SMBDIRECT_SOCKET_ERROR...
smb: client: fill in smbdirect_socket.first_error on error
smb: client: let smbd_disconnect_rdma_connection() disable all work
but disconnect_work
smb: client: let smbd_{destroy,disconnect_rdma_{work,connection}}()
wake up all wait queues
smb: client: make consitent use of spin_lock_irq{save,restore}() in
smbdirect.c
smb: client: allocate smbdirect workqueue at the beginning of
_smbd_get_connection()
smb: client: defer calling ib_alloc_pd() after we are connected
smb: client: let smbd_post_send_iter() call ib_dma_map_single() for
the header first
smb: server: let smb_direct_disconnect_rdma_connection() set
SMBDIRECT_SOCKET_ERROR...
smb: server: fill in smbdirect_socket.first_error on error
smb: server: let smb_direct_disconnect_rdma_connection() disable all
work but disconnect_work
smb: server: let
{free_transport,smb_direct_disconnect_rdma_{work,connection}}() wake
up all wait queues
smb: server: make consitent use of spin_lock_irq{save,restore}() in
transport_rdma.c
smb: server: make use of ib_alloc_cq_any() instead of ib_alloc_cq()
smb: server: let smb_direct_flush_send_list() invalidate a remote key
first
fs/smb/client/smbdirect.c | 224 +++++++++++++++------
fs/smb/common/smbdirect/smbdirect_socket.h | 24 +++
fs/smb/server/transport_rdma.c | 157 ++++++++++++---
3 files changed, 309 insertions(+), 96 deletions(-)
--
2.43.0
next reply other threads:[~2025-09-21 21:45 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-21 21:44 Stefan Metzmacher [this message]
2025-09-21 21:44 ` [PATCH 01/18] smb: smbdirect/client: introduce SMBDIRECT_SOCKET_ERROR Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 02/18] smb: smbdirect: let smbdirect_socket_init() initialize all [delayed_]work_structs as disabled Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 03/18] smb: smbdirect: introduce smbdirect_socket.first_error Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 04/18] smb: client: let smbd_disconnect_rdma_connection() set SMBDIRECT_SOCKET_ERROR Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 05/18] smb: client: fill in smbdirect_socket.first_error on error Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 06/18] smb: client: let smbd_disconnect_rdma_connection() disable all work but disconnect_work Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 07/18] smb: client: let smbd_{destroy,disconnect_rdma_{work,connection}}() wake up all wait queues Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 08/18] smb: client: make consitent use of spin_lock_irq{save,restore}() in smbdirect.c Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 09/18] smb: client: allocate smbdirect workqueue at the beginning of _smbd_get_connection() Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 10/18] smb: client: defer calling ib_alloc_pd() after we are connected Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 11/18] smb: client: let smbd_post_send_iter() call ib_dma_map_single() for the header first Stefan Metzmacher
2025-09-21 21:44 ` [PATCH 12/18] smb: server: let smb_direct_disconnect_rdma_connection() set SMBDIRECT_SOCKET_ERROR Stefan Metzmacher
2025-09-21 21:45 ` [PATCH 13/18] smb: server: fill in smbdirect_socket.first_error on error Stefan Metzmacher
2025-09-21 21:45 ` [PATCH 14/18] smb: server: let smb_direct_disconnect_rdma_connection() disable all work but disconnect_work Stefan Metzmacher
2025-09-21 21:45 ` [PATCH 15/18] smb: server: let {free_transport,smb_direct_disconnect_rdma_{work,connection}}() wake up all wait queues Stefan Metzmacher
2025-09-21 21:45 ` [PATCH 16/18] smb: server: make consitent use of spin_lock_irq{save,restore}() in transport_rdma.c Stefan Metzmacher
2025-09-21 21:45 ` [PATCH 17/18] smb: server: make use of ib_alloc_cq_any() instead of ib_alloc_cq() Stefan Metzmacher
2025-09-21 21:45 ` [PATCH 18/18] smb: server: let smb_direct_flush_send_list() invalidate a remote key first Stefan Metzmacher
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1758489988.git.metze@samba.org \
--to=metze@samba.org \
--cc=linkinjeon@kernel.org \
--cc=linux-cifs@vger.kernel.org \
--cc=longli@microsoft.com \
--cc=samba-technical@lists.samba.org \
--cc=smfrench@gmail.com \
--cc=tom@talpey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).