[RFC PATCH 0/4] smb:smbdirect/server: introduce smb_direct_negotiate_recv_work

Stefan Metzmacher metze at samba.org
Tue Dec 2 21:15:23 UTC 2025


Hi,

here's a patchset that implements a better solution
to the problem that the initial recv completion might
arrive before the RDMA_CM_EVENT_ESTABLISHED event.

The last patch is not intended to be applied, but
it helps to see the event flow it generated,
see the commit message.

This is based on the 4 smbirect patches within
v6.19-rc-smb-fixes:

dc10cf1368af8cb816dcaa2502ba7d44fff20612
smb: client: relax WARN_ON_ONCE(SMBDIRECT_SOCKET_*) checks in recv_done() and smbd_conn_upcall()
425c32750b48956a6e156b6a4609d281ee471359
smb: server: relax WARN_ON_ONCE(SMBDIRECT_SOCKET_*) checks in recv_done() and smb_direct_cm_handler()
1adb2dab9727c5beaaf253f67bf4fc2c54ae70e7
smb: smbdirect: introduce SMBDIRECT_CHECK_STATUS_{WARN,DISCONNECT}()
1f3fd108c5c5a9885c6c276a2489c49b60a6b90d
smb: smbdirect: introduce SMBDIRECT_DEBUG_ERR_PTR() helper

I've tested them on top of v6.18 (without the other patches
in v6.19-rc-smb-fixes).

Sadly there are still problems with Mellanox setups
as well as irdma (in iwarp mode). I'm trying to
prepare patches to debug this next.

Stefan Metzmacher (4):
  smb: smbdirect: introduce smbdirect_socket.connect.{lock,work}
  smb: server: initialize recv_io->cqe.done = recv_done just once
  smb: server: defer the initial recv completion logic to
    smb_direct_negotiate_recv_work()
  fs/smb/server/transport_rdma.c TMP DEBUG connect work

 fs/smb/common/smbdirect/smbdirect_socket.h |  12 +
 fs/smb/server/transport_rdma.c             | 321 +++++++++++++++++++--
 2 files changed, 304 insertions(+), 29 deletions(-)

-- 
2.43.0




More information about the samba-technical mailing list