From: rajasimandalos@gmail.com
To: sfrench@samba.org, linux-cifs@vger.kernel.org
Cc: rajasimandalos@gmail.com, Rajasi Mandal <rajasimandal@microsoft.com>
Subject: [PATCH v2] smb: client: allow nolease option to be reconfigured on remount
Date: Wed, 22 Apr 2026 05:06:13 +0000 [thread overview]
Message-ID: <20260422050613.1136327-1-rajasimandalos@gmail.com> (raw)
In-Reply-To: <20260409095926.905020-6-rajasimandalos@gmail.com>
From: Rajasi Mandal <rajasimandal@microsoft.com>
tcon->no_lease controls whether the client requests leases from the
server. Changing nolease via remount is silently accepted but has
no effect because the value is never propagated to the live tcon.
Add no_lease to smb3_sync_tcon_opts() so the flag is propagated to
every tcon on remount.
When switching to nolease, close all deferred file handles via
cifs_close_all_deferred_files_sb() outside the tlink_tree_lock,
since closing deferred handles can sleep. Deferred handles retain
active leases from before the switch; without closing them, those
files continue using lease-based caching despite nolease being set.
Both transitions are safe:
- lease -> nolease: deferred handles are closed, future opens
get OPLOCK_LEVEL_NONE.
- nolease -> lease: future opens request leases normally.
Signed-off-by: Rajasi Mandal <rajasimandal@microsoft.com>
---
fs/smb/client/fs_context.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/fs/smb/client/fs_context.c b/fs/smb/client/fs_context.c
index 45173f287f00..fb59b45c7f66 100644
--- a/fs/smb/client/fs_context.c
+++ b/fs/smb/client/fs_context.c
@@ -1317,6 +1317,7 @@ static void smb3_sync_tcon_opts(struct cifs_sb_info *cifs_sb,
spin_lock(&tcon->tc_lock);
tcon->retry = ctx->retry;
+ tcon->no_lease = ctx->no_lease;
/*
* Note: this updates the limit for new cached dir opens
* but does not resize or evict existing cached dirents.
@@ -1325,6 +1326,14 @@ static void smb3_sync_tcon_opts(struct cifs_sb_info *cifs_sb,
spin_unlock(&tcon->tc_lock);
}
spin_unlock(&cifs_sb->tlink_tree_lock);
+
+ /*
+ * When switching to nolease, close all deferred file handles.
+ * cifs_close_all_deferred_files_sb() handles its own locking
+ * and must be called outside tlink_tree_lock since it can sleep.
+ */
+ if (ctx->no_lease)
+ cifs_close_all_deferred_files_sb(cifs_sb);
}
/*
--
2.43.0
next prev parent reply other threads:[~2026-04-22 5:06 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-09 9:59 [PATCH 1/9] smb: client: block non-reconfigurable option changes on remount rajasimandalos
2026-04-09 9:59 ` [PATCH 2/9] smb: client: allow both 'lease' and 'nolease' mount options rajasimandalos
2026-04-13 13:30 ` Meetakshi Setiya
2026-04-09 9:59 ` [PATCH 3/9] smb: client: sync tcon-level options on remount rajasimandalos
2026-04-17 14:29 ` Meetakshi Setiya
2026-04-09 9:59 ` [PATCH 4/9] smb: client: sync retrans " rajasimandalos
2026-04-09 9:59 ` [PATCH 5/9] smb: client: sync echo_interval " rajasimandalos
2026-04-22 4:42 ` [PATCH v2] " rajasimandalos
2026-04-09 9:59 ` [PATCH 6/9] smb: client: allow nolease option to be reconfigured " rajasimandalos
2026-04-22 5:06 ` rajasimandalos [this message]
2026-04-22 8:36 ` [PATCH v2] " Bharath SM
2026-04-22 15:29 ` Steve French
2026-04-09 9:59 ` [PATCH 7/9] smb: client: block cache=ro and cache=singleclient " rajasimandalos
2026-04-13 13:40 ` Meetakshi Setiya
2026-04-22 4:34 ` RAJASI MANDAL
2026-04-09 9:59 ` [PATCH 8/9] smb: client: fix domainauto remount by syncing domainname from session rajasimandalos
2026-04-09 9:59 ` [PATCH 9/9] smb: client: apply rasize on remount rajasimandalos
2026-04-13 13:29 ` Meetakshi Setiya
2026-04-13 7:32 ` [PATCH v2 1/9] smb: client: block non-reconfigurable option changes " Rajasi Mandal
2026-04-17 14:05 ` Meetakshi Setiya
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260422050613.1136327-1-rajasimandalos@gmail.com \
--to=rajasimandalos@gmail.com \
--cc=linux-cifs@vger.kernel.org \
--cc=rajasimandal@microsoft.com \
--cc=sfrench@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox