[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