smb: client: allow both 'lease' and 'nolease' mount options

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>
Reviewed-by: Meetakshi Setiya <msetiya@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
master
Rajasi Mandal 2026-04-09 09:59:19 +00:00 committed by Steve French
parent dc0325b0aa
commit 4248ed1013
2 changed files with 4 additions and 4 deletions

View File

@ -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),
@ -1340,8 +1340,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;

View File

@ -102,7 +102,7 @@ enum cifs_param {
Opt_forcegid,
Opt_noblocksend,
Opt_noautotune,
Opt_nolease,
Opt_lease,
Opt_nosparse,
Opt_hard,
Opt_soft,