[GIT PULL] smb3 client fixes

From: Steve French
Date: Fri Aug 08 2025 - 17:22:22 EST


Please pull the following changes since commit
db68e4c80d995b67a92460711038b9223166bda7:

Merge tag 'v6.17-rc-part1-smb3-client-fixes' of
git://git.samba.org/sfrench/cifs-2.6 (2025-07-31 21:22:04 -0700)

are available in the Git repository at:

git://git.samba.org/sfrench/cifs-2.6.git tags/v6.17rc-part2-SMB3-client-fixes

for you to fetch changes up to dfe6f14aedbf59bfb7145de5c7da908583ae50fd:

smb: client: only use a single wait_queue to monitor smbdirect
connection status (2025-08-07 12:40:11 -0500)

----------------------------------------------------------------
33 smb3/cifs client changesets, mostly smbdirect cleanup

Eight non-smbdirect fixes
- Fix null ptr deref caused by delay in global spinlock initialization
- Two fixes for native symlink creation with SMB3.1.1 POSIX Extensions
- Fix for socket special file creation with SMB3.1.1 POSIX Exensions
- Reduce lock contention by splitting out mid_counter_lock
- move SMB1 transport code to separate file to reduce module size
when support for legacy servers is disabled
- Two cleanup patches: rename mid_lock to make it clearer what it protects
and one to convert mid flags to bool to make clearer

Twenty five smbdirect/RDMA restructuring patches and fixes
- Fix for error handling in send done
- Remove unneeded empty packet queue
- Fix put_receive_buffer error path
- Two fixes to recv_done error paths
- Remove unused variable
- Improve response and recvmsg type handling
- Fix handling of incoming message type
- Two cleanup fixes for better handling smbdirect recv io
- Two cleanup fixes for socket spinlock
- Two patches that add socket reassembly struct
- Remove unused connection_status enum
- Use flag in common header for SMBDIRECT_RECV_IO_MAX_SGE
- Two cleanup patches to introduce and use smbdirect send io
- Two cleanup patches to introduce and use smbdirect send_io struct
- Fix to return error if rdma connect takes longer than 5 seconds
- Error logging improvements
- Fix redundand call to init_waitqueue_head
- Remove unneeded wait queue
----------------------------------------------------------------
Paulo Alcantara (3):
smb: client: set symlink type as native for POSIX mounts
smb: client: default to nonativesocket under POSIX mounts
smb: client: fix creating symlinks under POSIX mounts

Stefan Metzmacher (25):
smb: client: let send_done() cleanup before calling
smbd_disconnect_rdma_connection()
smb: client: remove separate empty_packet_queue
smb: client: make sure we call ib_dma_unmap_single() only if we
called ib_dma_map_single already
smb: client: let recv_done() cleanup before notifying the callers.
smb: client: let recv_done() avoid touching data_transfer after
cleanup/move
smb: client: remove unused smbd_connection->fragment_reassembly_remaining
smb: smbdirect: introduce smbdirect_socket.recv_io.expected
smb: client: make use of smbdirect_socket->recv_io.expected
smb: smbdirect: introduce struct smbdirect_recv_io
smb: client: make use of struct smbdirect_recv_io
smb: smbdirect: introduce smbdirect_socket.recv_io.free.{list,lock}
smb: client: make use of smb: smbdirect_socket.recv_io.free.{list,lock}
smb: smbdirect: introduce smbdirect_socket.recv_io.reassembly.*
smb: client: make use of smbdirect_socket.recv_io.reassembly.*
smb: client: remove unused enum smbd_connection_status
smb: smbdirect: add SMBDIRECT_RECV_IO_MAX_SGE
smb: client: make use of SMBDIRECT_RECV_IO_MAX_SGE
smb: smbdirect: introduce struct smbdirect_send_io
smb: client: make use of struct smbdirect_send_io
smb: smbdirect: add smbdirect_socket.{send,recv}_io.mem.{cache,pool}
smb: client: make use of smbdirect_socket.{send,recv}_io.mem.{cache,pool}
smb: client: return an error if rdma_connect does not return
within 5 seconds
smb: client: improve logging in smbd_conn_upcall()
smb: client: don't call init_waitqueue_head(&info->conn_wait)
twice in _smbd_get_connection
smb: client: only use a single wait_queue to monitor smbdirect
connection status

Steve French (1):
cifs: Move the SMB1 transport code out of transport.c

Wang Zhaolong (3):
smb: client: rename server mid_lock to mid_queue_lock
smb: client: add mid_counter_lock to protect the mid counter counter
smb: client: smb: client: eliminate mid_flags field

Yunseong Kim (1):
cifs: Fix null-ptr-deref by static initializing global lock

fs/smb/client/Makefile | 2 +-
fs/smb/client/cifs_debug.c | 24 +-
fs/smb/client/cifsfs.c | 8 +-
fs/smb/client/cifsglob.h | 23 +-
fs/smb/client/cifsproto.h | 15 +
fs/smb/client/cifssmb.c | 4 +-
fs/smb/client/cifstransport.c | 566 +++++++++++++++++++++++++++
fs/smb/client/connect.c | 35 +-
fs/smb/client/fs_context.c | 19 +-
fs/smb/client/fs_context.h | 18 +-
fs/smb/client/link.c | 13 +-
fs/smb/client/reparse.c | 2 +-
fs/smb/client/smb1ops.c | 19 +-
fs/smb/client/smb2inode.c | 5 +-
fs/smb/client/smb2ops.c | 63 ++-
fs/smb/client/smb2transport.c | 4 +-
fs/smb/client/smbdirect.c | 465 +++++++++++-----------
fs/smb/client/smbdirect.h | 92 +----
fs/smb/client/transport.c | 602 ++---------------------------
fs/smb/common/smbdirect/smbdirect_socket.h | 118 ++++++
20 files changed, 1066 insertions(+), 1031 deletions(-)
create mode 100644 fs/smb/client/cifstransport.c

--
Thanks,

Steve