All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/9] smb: client: make remount option handling correct and consistent
@ 2026-05-21 13:54 rajasimandalos
  2026-05-21 13:54 ` [PATCH v3 1/9] smb: client: sync runtime state into ctx on reconfigure rajasimandalos
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: rajasimandalos @ 2026-05-21 13:54 UTC (permalink / raw)
  To: Steve French, Paulo Alcantara, Ronnie Sahlberg, Shyam Prasad N,
	Tom Talpey, Bharath SM, Meetakshi Setiya
  Cc: linux-cifs, linux-kernel, Rajasi Mandal

From: Rajasi Mandal <rajasimandal@microsoft.com>

This series fixes several long-standing problems with how the SMB
client handles mount options at remount time:

  - Options that affect runtime behaviour were silently ignored on
    remount because smb3_reconfigure() only updated cifs_sb->ctx and
    never propagated the new values to the live tcon / TCP_Server_Info
    structures (retrans, echo_interval, the per-tcon options, rasize).

  - Options that have no meaningful semantics on a live mount were
    accepted by the parser, leading to confusing behaviour where the
    user thinks the change took effect (vers, sec, multiuser, UNC,
    username, ...).  These are now rejected with a clear error.

  - Toggling 'lease' / 'nolease' on remount used to leave behind
    deferred file handles and cached directory entries that were
    obtained under the previous lease setting.  This series closes
    deferred files and invalidates cached dirs across the superblock
    when transitioning to nolease.

  - cache=ro and cache=singleclient are special-cased to be rejected
    on remount because changing them at runtime would be unsafe.

Patch 5 is a small refactor that moves struct tcon_list out of misc.c
into cifsglob.h so it can be shared between the new
invalidate_all_cached_dirs_sb() helper in cached_dir.c and the
existing cifs_close_all_deferred_files_sb() in misc.c.  Patch 6 then
uses the shared struct.

Testing
=======

  - Ran xfstests on the patch series.
  - A targeted nolease/cached_dir stress test (lease<->nolease toggle
    cycles, parallel remounters, concurrent I/O, GET/PUT trace pairing,
    deadlock/starvation bounds, hung-task scan).
  - A general remount test covering both reconfigurable and rejected
    option changes plus repeated mount/umount/remount cycles.

All runs clean, no WARN/BUG/UAF/hung-task in dmesg.


Rajasi Mandal (9):
  smb: client: sync runtime state into ctx on reconfigure
  smb: client: block non-reconfigurable option changes on remount
  smb: client: sync tcon-level options on remount
  smb: client: sync retrans on remount
  smb: client: sync echo_interval on remount
  smb: client: move struct tcon_list to cifsglob.h
  smb: client: allow nolease option to be reconfigured on remount
  smb: client: block cache=ro and cache=singleclient on remount
  smb: client: apply rasize on remount

 fs/smb/client/cached_dir.c |  44 +++++
 fs/smb/client/cached_dir.h |   1 +
 fs/smb/client/cifs_swn.h   |  14 +-
 fs/smb/client/cifsglob.h   |   5 +
 fs/smb/client/fs_context.c | 355 ++++++++++++++++++++++++++++++++++++-
 fs/smb/client/misc.c       |   5 -
 fs/smb/client/smb1ops.c    |   7 +-
 fs/smb/client/smb2pdu.c    |  11 +-
 fs/smb/client/trace.h      |   2 +
 9 files changed, 431 insertions(+), 13 deletions(-)


base-commit: 19d8c94787da866318eead464fb9c9d70815af56
-- 
2.43.0


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

end of thread, other threads:[~2026-06-04 14:42 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-21 13:54 [PATCH v3 0/9] smb: client: make remount option handling correct and consistent rajasimandalos
2026-05-21 13:54 ` [PATCH v3 1/9] smb: client: sync runtime state into ctx on reconfigure rajasimandalos
2026-06-04 14:11   ` Meetakshi Setiya
2026-05-21 13:54 ` [PATCH v3 2/9] smb: client: block non-reconfigurable option changes on remount rajasimandalos
2026-06-04 14:42   ` Meetakshi Setiya
2026-05-21 13:54 ` [PATCH v3 3/9] smb: client: sync tcon-level options " rajasimandalos
2026-05-21 13:54 ` [PATCH v3 4/9] smb: client: sync retrans " rajasimandalos
2026-05-21 13:54 ` [PATCH v3 5/9] smb: client: sync echo_interval " rajasimandalos
2026-05-21 14:06 ` [PATCH v3 6/9] smb: client: move struct tcon_list to cifsglob.h rajasimandalos
2026-05-21 14:06 ` [PATCH v3 7/9] smb: client: allow nolease option to be reconfigured on remount rajasimandalos
2026-05-21 14:06 ` [PATCH v3 8/9] smb: client: block cache=ro and cache=singleclient " rajasimandalos
2026-05-21 14:06 ` [PATCH v3 9/9] smb: client: apply rasize " rajasimandalos

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.