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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.