]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
smb: client: allow both 'lease' and 'nolease' mount options
authorRajasi Mandal <rajasimandal@microsoft.com>
Thu, 9 Apr 2026 09:59:19 +0000 (09:59 +0000)
committerSteve French <stfrench@microsoft.com>
Mon, 13 Apr 2026 14:14:54 +0000 (09:14 -0500)
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>
fs/smb/client/fs_context.c
fs/smb/client/fs_context.h

index 3f0faae99ed52c117d363b94a8c8581142d1b2e6..b9544eb0381b73e7fda357e7476fe481a1b1a375 100644 (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;
index 0b64fcb5d302e5df646c8da17b4ac43a77afa569..a80a5caff23c6cb91e557e555ed43bab88df9ddf 100644 (file)
@@ -102,7 +102,7 @@ enum cifs_param {
        Opt_forcegid,
        Opt_noblocksend,
        Opt_noautotune,
-       Opt_nolease,
+       Opt_lease,
        Opt_nosparse,
        Opt_hard,
        Opt_soft,