linux-cifs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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


             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).