All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/18] smbdirect/client/server: improved error handling and other small improvements
@ 2025-09-21 21:44 Stefan Metzmacher
  2025-09-21 21:44 ` [PATCH 01/18] smb: smbdirect/client: introduce SMBDIRECT_SOCKET_ERROR Stefan Metzmacher
                   ` (17 more replies)
  0 siblings, 18 replies; 19+ messages in thread
From: Stefan Metzmacher @ 2025-09-21 21:44 UTC (permalink / raw)
  To: linux-cifs, samba-technical
  Cc: metze, Steve French, Tom Talpey, Long Li, Namjae Jeon

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


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2025-09-21 21:47 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-21 21:44 [PATCH 00/18] smbdirect/client/server: improved error handling and other small improvements Stefan Metzmacher
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

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.