mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [GIT PULL] ksmbd server update for 7.4-rc1
@ 2026-10-24  4:15 Namjae Jeon
  2026-10-26  2:07 ` pr-tracker-bot
  0 siblings, 1 reply; 2+ messages in thread
From: Namjae Jeon @ 2026-10-24  4:15 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linux Kernel Mailing List, CIFS

Hi Linus,

This is ksmbd server update pull request for v7.4-rc1. I add a description of
this pull request below. Please pull ksmbd with following ones.

Thanks!

The following changes since commit 4cbdd58dfa7aaad679bf62f81cdbc96a6cb7c6ae:

  Merge tag 'perf-core-2026-10-18' of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2026-10-20
13:00:41 -1000)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/smb.git
tags/ksmbd-for-7.4-rc1

for you to fetch changes up to 2c36c4a86104d763ee798d4a89e2d3384b4cd626:

  ksmbd: select CRYPTO_AES (2026-10-23 10:09:14 +0900)

----------------------------------------------------------------
 - Add extended SMB2 directory information support.
   Implement FileIdExtdDirectoryInformation,
   FileId64ExtdDirectoryInformation,
   FileId64ExtdBothDirectoryInformation,
   FileIdAllExtdDirectoryInformation, and
   FileIdAllExtdBothDirectoryInformation, including reparse tags,
   file attributes, and initialized response padding.

 - Track unsigned 64-bit lock ranges in the server lock index, with
   conflict detection, blocking waits, cancellation, rollback, and
   cleanup for ranges beyond the VFS signed-offset limit.

 - Add configurable per-connection session limits.
   Reserve slots for new sessions and multichannel bindings, release
   them during failure and cleanup, and expose the configured limit
   through procfs.

 - Validate POSIX negotiate and CREATE contexts, including payload
   lengths, extension tags, duplicate contexts, dialect requirements,
   and share eligibility. Require POSIX opens for POSIX file,
   directory, and filesystem information queries.

 - Apply requested POSIX create modes, including mode zero, and NFS
   mode ACEs with special permission bits. Enforce append-only writes
   and base byte-range lock checks on each open's POSIX state.

 - Complete POSIX metadata responses with filenames, file types,
   permission bits, and filesystem device identifiers. Query filesystem
   information through the requested open and report the filesystem
   fragment size and response length.

 - Validate SMB3 encryption transform flags and ensure decrypted
   compound requests use the session authenticated by the transform,
   including requests containing compressed payloads.

 - Serialize negotiation with receive processing, size CREATE responses
   for their contexts, reserve UTF-16 terminator space in stream
   information, and validate WRITE data against the active compound
   request to prevent buffer overruns and stale-data writes.

 - Validate security descriptor offsets before pointer arithmetic,
   handle DACL offset overflow on 32-bit systems, and propagate inode
   ACL lookup failures safely.

 - Deny access through empty DACLs while retaining the owner's implicit
   security-management rights. Add KUnit regression coverage for DACL
   walk boundaries and maximal-access calculations.

 - Validate RPC pipe ownership for IPC$ reads and writes, and fix
   FSCTL_PIPE_TRANSCEIVE handle lookup and response file IDs.

 - Fix durable reconnect path validation for symlinked share paths,
   shares exporting "/", and handles opened at the share root.
   Check path boundaries before comparisons to prevent out-of-bounds
   reads and cross-share confusion.

 - Rebind completed durable CREATE replays to surviving channels
   without draining unrelated requests on the old channel. Transfer
   open accounting with the binding and avoid consuming additional
   open-file budget during durable reconnects.

 - Scope AppInstanceId takeovers to the matching share, path, stream,
   and client identity. Check access and AppInstanceVersion before
   closing an existing open.

 - Retry oplock and lease break notifications through other live
   channels, track queued TCP delivery, serialize acknowledgment
   updates, and expire unacknowledged breaks while waking blocked
   requests.

 - Keep lease tables and byte-range lock indexes independent of their
   original connection so surviving channels and detached durable
   opens retain access to lease and lock state.

 - Reclaim ended sessions after logoff and expiration, hold connection
   references for session channels, and drain procfs readers before
   releasing session table references. Avoid deadlocks during
   previous-session teardown and connection scavenging.

 - Prevent file publication after tree disconnect and retain tree
   references until final file release. Take parent dentry references
   during directory enumeration and serialize directory emptiness
   checks with readdir.

 - Prevent share-root removal through empty removal paths and return
   appropriate errors for directory zero-data requests and temporary
   directory attributes.

 - Fix named-stream writes, EOF changes, end-of-file reads, and content
   copying into rename targets. Reuse existing xattr names, report
   sizes by exact xattr name, and avoid emptying streams after lookup
   or permission failures.

 - Round allocation requests to the advertised allocation unit and
   avoid allocation changes that leave on-disk EOF inconsistent with
   the in-memory size.

 - Inherit FileIds across related compound requests, including
   CHANGE_NOTIFY, and use the existing async request machinery for
   notify waiting and cancellation.

 - Restore share configuration and Kerberos authentication compatibility
   with released ksmbd-tools. Advertise extended session security for
   raw NTLMSSP when requested by the client.

 - Improve Windows chained-compression compatibility, synthesized
   AFP_AfpInfo headers, generated short names, and UTF-16 alignment
   in partial normalized-name responses.

 - Fix interface-query locking, response chaining, link-speed reporting,
   and independent IPv4/IPv6 address enumeration. Display native IPv6
   client addresses accurately in procfs.

 - Improve SMB Direct socket cleanup by reclaiming failed pending
   connections, skipping failed sockets during accept, avoiding
   indefinite disconnect waits, and handling unexpected receive
   opcodes without triggering kernel warnings.

 - Select CRYPTO_AES for SMB3 encryption, replace deprecated system
   workqueues, and update feature status documentation and POSIX
   specification references.

----------------------------------------------------------------
Aamir Ahmed (1):
      ksmbd: deny access for an empty DACL instead of granting the request

Abdifatah Suruur (1):
      ksmbd: reserve space for the UTF-16 terminator in stream info

Cen Zhang (Microsoft) (1):
      ksmbd: fix parent dentry lifetime in directory enumeration

ChenXiaoSong (4):
      smb/server: support compound fid in notify requests
      smb/server: fix trailing period in generated short names
      smb/server: align partial normalized name responses to UTF-16
      smb/server: rename smb2_file_alt_name_info to smb2_file_name_info

DaeMyung Kang (6):
      ksmbd: fix named stream write and EOF handling
      ksmbd: return end of file for reads past a named stream's data
      ksmbd: use the existing xattr name for a named stream
      ksmbd: preserve unreadable named streams on open
      ksmbd: avoid restoring only in-memory EOF after allocation change
      ksmbd: round SetAllocation to the advertised allocation unit

Daijiamu (1):
      ksmbd: use clear_and_wake_up_bit() directly

Dairui Zhang (2):
      ksmbd: fix OOB read and cross-share confusion in
ksmbd_validate_name_reconnect()
      ksmbd: verify transform SessionId matches the decrypted header

Gael Blivet (5):
      ksmbd: refactor smb2_notify() to a blocking wait
      ksmbd: copy stream content when renaming to a new stream name
      ksmbd: look up stream size by exact xattr name
      ksmbd: fix AFP_AfpInfo header fields in synthesized xattr
      ksmbd: print IPv6 client addresses correctly in procfs

Giorgi Kobakhia (1):
      ksmbd: fix overflow in dacloffset bounds check in build_sec_desc()

Hang Nan (3):
      ksmbd: add KUnit test for the DACL walk boundary
      ksmbd: test smb_check_perm_dacl() DACL walk boundary
      ksmbd: test maximal-access DACL walk boundary

Henry Hu (6):
      ksmbd: fix iface_list use-after-free during server reset
      ksmbd: fix invalid pointer dereference when get_inode_acl() fails
      ksmbd: fix link speed query in fsctl_query_iface_info_ioctl()
      ksmbd: fix unlocked IPv6 addr_list walk in fsctl_query_iface_info_ioctl()
      ksmbd: fix invalid Next offset in interface info replies
      ksmbd: report IPv4 and IPv6 addresses independently in iface query

Jérémy Jean (1):
      ksmbd: fix SMB2 CREATE response buffer overflow

Karl Mehltretter (1):
      ksmbd: use u8 for SMB2 oplock level values

Lee Seong Hyeon (1):
      ksmbd: reject FSCTL_SET_ZERO_DATA on a directory handle

Michail Andreas Michalopoulos (4):
      ksmbd: accept share config responses from ksmbd-tools before 3.5.3
      ksmbd: reject FILE_ATTRIBUTE_TEMPORARY on directories
      ksmbd: restore Kerberos logins with released ksmbd-tools
      ksmbd: select CRYPTO_AES

Mohammed Alquraini (1):
      ksmbd: reject foreign RPC pipe handles on IPC$ read and write

Namjae Jeon (44):
      ksmbd: prevent stale data from being written by SMB2 WRITE requests
      ksmbd: doc: update SMB3 multichannel support status
      ksmbd: doc: update RDMA feature support status
      ksmbd: doc: update feature status
      ksmbd: disconnect on invalid encryption transform flags
      ksmbd: wait for negotiation before receiving another PDU
      ksmbd: support FileIdAllExtdBothDirectoryInformation
      ksmbd: support FileIdExtdDirectoryInformation
      ksmbd: support FileId64ExtdDirectoryInformation
      ksmbd: support FileId64ExtdBothDirectoryInformation
      ksmbd: support FileIdAllExtdDirectoryInformation
      ksmbd: cache the resolved share path for durable reconnects
      ksmbd: fix durable reconnects for root shares
      ksmbd: fix extended session security negotiation for raw NTLMSSP
      ksmbd: validate security descriptor offsets before pointer arithmetic
      ksmbd: release connection lock while draining old session
      ksmbd: serialize oplock break ACK state updates
      ksmbd: track delivery of queued TCP writes
      ksmbd: retry break notifications on another connection
      ksmbd: keep lease tables until their last lease is closed
      ksmbd: index byte-range locks independently of their connection
      ksmbd: rebind completed CREATE replays without draining the old channel
      ksmbd: track SMB2 locks above OFFSET_MAX in server lock table
      ksmbd: expire unacknowledged oplock breaks
      ksmbd: expire unacknowledged lease breaks
      ksmbd: validate POSIX negotiate contexts
      ksmbd: validate POSIX create contexts
      ksmbd: enforce POSIX append-only writes
      ksmbd: apply byte-range lock checks per open
      ksmbd: use requested mode in POSIX creates
      ksmbd: apply POSIX mode ACEs in security updates
      ksmbd: correct POSIX file metadata in responses
      ksmbd: include filenames in POSIX query info
      ksmbd: require POSIX opens for file and directory queries
      ksmbd: query POSIX filesystem info through the open file
      ksmbd: correct POSIX filesystem block size and response length
      ksmbd: inherit FileIds in related compound requests
      ksmbd: defer connection scavenging while session locks are busy
      ksmbd: hold a connection reference for each session channel
      ksmbd: limit sessions on each connection
      ksmbd: reclaim ended sessions on logoff and expiration
      ksmbd: drain session procfs readers before dropping table references
      ksmbd: fix fd_limit accounting across durable reconnects
      ksmbd: prevent share root removal through empty paths

Omkar Chandorkar (2):
      smb: compress: relax trailing flags in chained decompression
      ksmbd: fix FSCTL_PIPE_TRANSCEIVE file lookup and response handling

Stefan Metzmacher (4):
      smb: smbdirect: don't wait for RDMA_CM_EVENT_DISCONNECTED in
smbdirect_socket_destroy_sync()
      smb: smbdirect: release failed pending sockets of a listener
      smb: smbdirect: don't hand out already failed sockets in
smbdirect_socket_accept()
      smb: smbdirect: don't WARN on an unexpected receive opcode

Sung Byeongchan (1):
      ksmbd: validate AppInstanceId takeover target

Weiming Shi (1):
      smb/server: prevent file publication after tree disconnect

Yongjun Gwon (1):
      ksmbd: serialize directory emptiness checks with readdir

ZhangGuoDong (3):
      smb/server: update POSIX extension specification references
      smb/common: update POSIX extension specification references
      smb/server: replace deprecated system workqueues

 Documentation/filesystems/smb/ksmbd.rst |   14 +-
 fs/smb/common/compress/compress.c       |   16 +-
 fs/smb/common/fscc.h                    |    5 +-
 fs/smb/common/smbglob.h                 |    1 +
 fs/smb/server/Kconfig                   |    3 +
 fs/smb/server/Makefile                  |    1 +
 fs/smb/server/auth.c                    |    6 +-
 fs/smb/server/compress.c                |    1 +
 fs/smb/server/connection.c              |   59 +-
 fs/smb/server/connection.h              |   31 +-
 fs/smb/server/ksmbd_netlink.h           |    8 +-
 fs/smb/server/ksmbd_work.c              |   22 +-
 fs/smb/server/ksmbd_work.h              |   18 +-
 fs/smb/server/mgmt/share_config.c       |   43 +-
 fs/smb/server/mgmt/share_config.h       |    6 +-
 fs/smb/server/mgmt/tree_connect.c       |    7 +
 fs/smb/server/mgmt/tree_connect.h       |    2 +
 fs/smb/server/mgmt/user_session.c       |  221 ++-
 fs/smb/server/mgmt/user_session.h       |   12 +-
 fs/smb/server/oplock.c                  | 1126 ++++++++++------
 fs/smb/server/oplock.h                  |   23 +-
 fs/smb/server/proc.c                    |    2 +
 fs/smb/server/server.c                  |   31 +-
 fs/smb/server/server.h                  |    3 +
 fs/smb/server/smb2ops.c                 |   33 +
 fs/smb/server/smb2pdu.c                 | 2222 ++++++++++++++++++++-----------
 fs/smb/server/smb2pdu.h                 |   26 +-
 fs/smb/server/smb_common.c              |   10 +-
 fs/smb/server/smb_common.h              |   98 ++
 fs/smb/server/smbacl.c                  |   77 +-
 fs/smb/server/smbacl.h                  |    4 +-
 fs/smb/server/tests/Kconfig             |   15 +
 fs/smb/server/tests/Makefile            |    4 +
 fs/smb/server/tests/smbacl_kunit.c      |  301 +++++
 fs/smb/server/transport_ipc.c           |   23 +-
 fs/smb/server/transport_tcp.c           |  307 ++++-
 fs/smb/server/vfs.c                     |  126 +-
 fs/smb/server/vfs.h                     |    8 +-
 fs/smb/server/vfs_cache.c               |  732 +++++++---
 fs/smb/server/vfs_cache.h               |   35 +-
 fs/smb/smbdirect/accept.c               |  227 +++-
 fs/smb/smbdirect/connect.c              |    2 +-
 fs/smb/smbdirect/connection.c           |   14 +-
 fs/smb/smbdirect/internal.h             |    2 +
 fs/smb/smbdirect/listen.c               |  137 +-
 fs/smb/smbdirect/socket.c               |  113 +-
 fs/smb/smbdirect/socket.h               |   42 +
 47 files changed, 4501 insertions(+), 1718 deletions(-)
 create mode 100644 fs/smb/server/tests/Kconfig
 create mode 100644 fs/smb/server/tests/Makefile
 create mode 100644 fs/smb/server/tests/smbacl_kunit.c

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-10-26  2:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-24  4:15 [GIT PULL] ksmbd server update for 7.4-rc1 Namjae Jeon
2026-10-26  2:07 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®