Re: [PATCH 2/9] smb: client: allow both 'lease' and 'nolease' mount options

Meetakshi Setiya
2026-04-13T13:31:13Z

Reviewed-by: Meetakshi Setiya <msetiya@microsoft.com>

On Thu, Apr 9, 2026 at 3:07 AM <rajasimandalos@gmail.com> wrote:
>
> From: Rajasi Mandal <rajasimandal@microsoft.com>
>
> Change the nolease mount option from fsparam_flag() to fsparam_flag_no()
> so that both 'lease' and 'nolease' are accepted as valid mount options.
>
> Previously, only 'nolease' was recognized. Passing 'lease' would fail
> with an unknown parameter error (or be silently ignored with 'sloppy').
>
> With this change:
> - 'nolease' disables lease requests (same behavior as before)
> - 'lease' explicitly enables lease requests
>
> This also renames the enum value from Opt_nolease to Opt_lease and uses
> result.negated to set ctx->no_lease, which is the standard pattern used
> by other flag_no options in the cifs mount option parser.
>
> Signed-off-by: Rajasi Mandal <rajasimandal@microsoft.com>
> ---
> fs/smb/client/fs_context.c | 6 +++---
> fs/smb/client/fs_context.h | 2 +-
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/fs/smb/client/fs_context.c b/fs/smb/client/fs_context.c
> index 0f6c1eb8e274..e1bf7bad5be6 100644
> --- a/fs/smb/client/fs_context.c
> +++ b/fs/smb/client/fs_context.c
> @@ -80,7 +80,7 @@ const struct fs_parameter_spec smb3_fs_parameters[] = {
> fsparam_flag_no("forcegid", Opt_forcegid),
> fsparam_flag("noblocksend", Opt_noblocksend),
> fsparam_flag("noautotune", Opt_noautotune),
> - fsparam_flag("nolease", Opt_nolease),
> + fsparam_flag_no("lease", Opt_lease),
> fsparam_flag_no("hard", Opt_hard),
> fsparam_flag_no("soft", Opt_soft),
> fsparam_flag_no("perm", Opt_perm),
> @@ -1572,8 +1572,8 @@ static int smb3_fs_context_parse_param(struct fs_context *fc,
> case Opt_noautotune:
> ctx->noautotune = 1;
> break;
> - case Opt_nolease:
> - ctx->no_lease = 1;
> + case Opt_lease:
> + ctx->no_lease = result.negated;
> break;
> case Opt_nosparse:
> ctx->no_sparse = 1;
> diff --git a/fs/smb/client/fs_context.h b/fs/smb/client/fs_context.h
> index 0b64fcb5d302..a80a5caff23c 100644
> --- a/fs/smb/client/fs_context.h
> +++ b/fs/smb/client/fs_context.h
> @@ -102,7 +102,7 @@ enum cifs_param {
> Opt_forcegid,
> Opt_noblocksend,
> Opt_noautotune,
> - Opt_nolease,
> + Opt_lease,
> Opt_nosparse,
> Opt_hard,
> Opt_soft,
> --
> 2.43.0
>
>