[GIT PULL] ksmbd server and smbdirect fixes
From: Steve French
Date: Wed Feb 11 2026 - 19:32:20 EST
Please pull the following changes since commit
05f7e89ab9731565d8a62e3b5d1ec206485eeb0b:
Linux 6.19 (2026-02-08 13:03:27 -0800)
are available in the Git repository at:
git://git.samba.org/ksmbd.git tags/v7.0-rc-part1-ksmbd-and-smbdirect-fixes
for you to fetch changes up to 8f7df60fe063b6b8f039af1042a4b99214347dd1:
ksmbd: fix non-IPv6 build (2026-02-10 12:58:10 -0600)
----------------------------------------------------------------
32 ksmbd and smbdirect (RDMA) fixes
- Fix tcp connection leak
- Fix potential use after free when freeing multichannel
- Fix locking problem in showing channel list
- Locking improvement for tree connection
- Fix infinite loop when signing errors
- Add /proc interface for monitoring server state
- Fixes to avoid mixing iWarp and InfiniBand/RoCEv1/RoCEv2 port
ranges used for smbdirect
- Fixes for smbdirect credit handling problems,
these make the connections more reliable
----------------------------------------------------------------
Arnd Bergmann (1):
ksmbd: fix non-IPv6 build
Bahubali B Gumaji (1):
ksmbd: add procfs interface for runtime monitoring and statistics
Henrique Carvalho (1):
smb: server: fix leak of active_num_conn in ksmbd_tcp_new_connection()
Namjae Jeon (4):
ksmbd: fix infinite loop caused by next_smb2_rcv_hdr_off reset
in error paths
ksmbd: add chann_lock to protect ksmbd_chann_list xarray
ksmbd: fix missing chann_lock while iterating session channel list
ksmbd: convert tree_conns_lock to rw_semaphore
Stefan Metzmacher (25):
smb: smbdirect: introduce smbdirect_socket.recv_io.credits.available
smb: smbdirect: introduce smbdirect_socket.send_io.bcredits.*
smb: server: make use of smbdirect_socket.recv_io.credits.available
smb: server: let recv_done() queue a refill when the peer is low
on credits
smb: server: make use of smbdirect_socket.send_io.bcredits
smb: server: fix last send credit problem causing disconnects
smb: server: let send_done handle a completion without IB_SEND_SIGNALED
smb: client: make use of smbdirect_socket.recv_io.credits.available
smb: client: let recv_done() queue a refill when the peer is low
on credits
smb: client: let smbd_post_send() make use of request->wr
smb: client: remove pointless sc->recv_io.credits.count rollback
smb: client: remove pointless sc->send_io.pending handling in
smbd_post_send_it
er()
smb: client: port and use the wait_for_credits logic used by server
smb: client: split out smbd_ib_post_send()
smb: client: introduce and use smbd_{alloc, free}_send_io()
smb: client: use smbdirect_send_batch processing
smb: client: make use of smbdirect_socket.send_io.bcredits
smb: client: fix last send credit problem causing disconnects
smb: client: let smbd_post_send_negotiate_req() use smbd_post_send()
smb: client: let send_done handle a completion without IB_SEND_SIGNALED
RDMA/core: introduce rdma_restrict_node_type()
smb: client: make use of rdma_restrict_node_type()
smb: server: make use of rdma_restrict_node_type()
smb: client: correct value for smbd_max_fragmented_recv_size
smb: server: correct value for smb_direct_max_fragmented_recv_size
drivers/infiniband/core/cma.c | 30 ++
drivers/infiniband/core/cma_priv.h | 1 +
fs/smb/client/smbdirect.c | 568 ++++++++++++++++++++++-------
fs/smb/common/smbdirect/smbdirect_socket.h | 18 +
fs/smb/server/Makefile | 1 +
fs/smb/server/connection.c | 59 +++
fs/smb/server/connection.h | 5 +-
fs/smb/server/mgmt/tree_connect.c | 36 +-
fs/smb/server/mgmt/user_config.c | 6 +-
fs/smb/server/mgmt/user_config.h | 2 +-
fs/smb/server/mgmt/user_session.c | 231 +++++++++++-
fs/smb/server/mgmt/user_session.h | 8 +-
fs/smb/server/misc.h | 30 ++
fs/smb/server/proc.c | 134 +++++++
fs/smb/server/server.c | 15 +-
fs/smb/server/smb2ops.c | 4 +
fs/smb/server/smb2pdu.c | 23 +-
fs/smb/server/smb_common.c | 24 ++
fs/smb/server/smb_common.h | 2 +
fs/smb/server/stats.h | 73 ++++
fs/smb/server/transport_rdma.c | 297 ++++++++++++---
fs/smb/server/transport_tcp.c | 3 +-
fs/smb/server/vfs.c | 3 +
fs/smb/server/vfs_cache.c | 94 +++++
include/rdma/rdma_cm.h | 17 +
25 files changed, 1483 insertions(+), 201 deletions(-)
create mode 100644 fs/smb/server/proc.c
create mode 100644 fs/smb/server/stats.h
--
Thanks,
Steve