[PATCH v3 0/4] smb: smbdirect/client/server: relax WARN_ON_ONCE(SMBDIRECT_SOCKET_*) checks
Namjae Jeon
linkinjeon at kernel.org
Tue Nov 25 23:50:02 UTC 2025
On Tue, Nov 25, 2025 at 11:22 PM Stefan Metzmacher <metze at samba.org> wrote:
>
> Hi,
>
> here are some small cleanups for a problem Nanjae reported,
> where two WARN_ON_ONCE(sc->status != ...) checks where triggered
> by a Windows 11 client.
>
> The patches should relax the checks if an error happened before,
> they are intended for 6.18 final, as far as I can see the
> problem was introduced during the 6.18 cycle only.
>
> Given that v1 of this patchset produced a very useful WARN_ONCE()
> message, I'd really propose to keep this for 6.18, also for the
> client where the actual problem may not exists, but if they
> exist, it will be useful to have the more useful messages
> in 6.16 final.
First, the warning message has been improved. Thanks.
However, when copying a 6-7GB file on a Windows client, the following
error occurs. These error messages did not occur when testing with the
older ksmbd rdma(https://github.com/namjaejeon/ksmbd).
[ 424.088714] ksmbd: smb_direct: disconnected
[ 424.088729] ksmbd: sock_read failed: -107
[ 424.088881] ksmbd: Failed to send message: -107
[ 424.088908] ksmbd: Failed to send message: -107
[ 424.088922] ksmbd: Failed to send message: -107
[ 424.088980] ksmbd: Failed to send message: -107
[ 424.089044] ksmbd: Failed to send message: -107
[ 424.089058] ksmbd: Failed to send message: -107
[ 424.089062] ksmbd: Failed to send message: -107
[ 424.089068] ksmbd: Failed to send message: -107
[ 424.089078] ksmbd: Failed to send message: -107
[ 424.089085] ksmbd: Failed to send message: -107
[ 424.089104] ksmbd: smb_direct: Send error. status='WR flushed (5)', opcode=0
[ 424.089111] ksmbd: Failed to send message: -107
[ 424.089140] ksmbd: Failed to send message: -107
[ 424.089160] ksmbd: Failed to send message: -107
[ 424.090146] ksmbd: Failed to send message: -107
[ 424.090160] ksmbd: Failed to send message: -107
[ 424.090180] ksmbd: Failed to send message: -107
[ 424.090188] ksmbd: Failed to send message: -107
[ 424.090200] ksmbd: Failed to send message: -107
[ 424.090228] ksmbd: Failed to send message: -107
[ 424.090245] ksmbd: Failed to send message: -107
[ 424.090261] ksmbd: Failed to send message: -107
[ 424.090274] ksmbd: Failed to send message: -107
[ 424.090317] ksmbd: Failed to send message: -107
[ 424.090323] ksmbd: Failed to send message: -107
[ 432.648368] ksmbd: smb_direct: disconnected
[ 432.648383] ksmbd: sock_read failed: -107
[ 432.648800] ksmbd: smb_direct: Send error. status='WR flushed (5)', opcode=0
[ 432.649835] ksmbd: Failed to send message: -107
[ 432.649870] ksmbd: Failed to send message: -107
[ 432.649883] ksmbd: Failed to send message: -107
[ 432.649894] ksmbd: Failed to send message: -107
[ 432.649913] ksmbd: Failed to send message: -107
[ 432.649966] ksmbd: Failed to send message: -107
[ 432.650023] ksmbd: Failed to send message: -107
[ 432.650077] ksmbd: Failed to send message: -107
[ 432.650138] ksmbd: Failed to send message: -107
[ 432.650151] ksmbd: Failed to send message: -107
[ 432.650173] ksmbd: Failed to send message: -107
[ 432.650182] ksmbd: Failed to send message: -107
[ 432.650196] ksmbd: Failed to send message: -107
[ 432.650205] ksmbd: Failed to send message: -107
[ 432.650219] ksmbd: Failed to send message: -107
[ 432.650229] ksmbd: Failed to send message: -107
[ 432.650238] ksmbd: Failed to send message: -107
[ 432.650256] ksmbd: Failed to send message: -107
[ 432.650270] ksmbd: Failed to send message: -107
[ 450.254342] ksmbd: Failed to send message: -107
[ 450.254644] ksmbd: Failed to send message: -107
[ 450.254672] ksmbd: Failed to send message: -107
[ 450.254688] ksmbd: Failed to send message: -107
[ 450.254825] ksmbd: Failed to send message: -107
[ 450.254859] ksmbd: smb_direct: disconnected
[ 450.254866] ksmbd: sock_read failed: -107
[ 450.255282] ksmbd: smb_direct: Send error. status='WR flushed (5)', opcode=0
[ 450.255342] ksmbd: smb_direct: Send error. status='WR flushed (5)', opcode=0
>
> Thanks!
> metze
>
> v3: move __SMBDIRECT_SOCKET_DISCONNECT() defines before including
> smbdirect headers in order to avoid problems with the follow
> up changes for 6.19
>
> v2: adjust for the case where the recv completion arrives before
> RDMA_CM_EVENT_ESTABLISHED and improve commit messages
>
> Stefan Metzmacher (4):
> smb: smbdirect: introduce SMBDIRECT_DEBUG_ERR_PTR() helper
> smb: smbdirect: introduce SMBDIRECT_CHECK_STATUS_{WARN,DISCONNECT}()
> smb: server: relax WARN_ON_ONCE(SMBDIRECT_SOCKET_*) checks in
> recv_done() and smb_direct_cm_handler()
> smb: client: relax WARN_ON_ONCE(SMBDIRECT_SOCKET_*) checks in
> recv_done() and smbd_conn_upcall()
>
> fs/smb/client/smbdirect.c | 28 ++++++------
> fs/smb/common/smbdirect/smbdirect_socket.h | 51 ++++++++++++++++++++++
> fs/smb/server/transport_rdma.c | 40 +++++++++++++----
> 3 files changed, 98 insertions(+), 21 deletions(-)
>
> --
> 2.43.0
>
More information about the samba-technical
mailing list