shmem_parse_options(): don't bother with mpol in separate variable
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 8 Sep 2019 23:11:46 +0000 (19:11 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 13 Sep 2019 01:00:26 +0000 (21:00 -0400)
just use ctx->mpol (note that callers always set ctx->mpol to NULL when
calling that).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
mm/shmem.c

index 98aa066..8bca06c 100644 (file)
@@ -3366,7 +3366,6 @@ static const struct export_operations shmem_export_ops = {
 static int shmem_parse_options(char *options, struct shmem_options *ctx)
 {
        char *this_char, *value, *rest;
-       struct mempolicy *mpol = NULL;
        uid_t uid;
        gid_t gid;
 
@@ -3452,9 +3451,9 @@ static int shmem_parse_options(char *options, struct shmem_options *ctx)
 #endif
 #ifdef CONFIG_NUMA
                } else if (!strcmp(this_char,"mpol")) {
-                       mpol_put(mpol);
-                       mpol = NULL;
-                       if (mpol_parse_str(value, &mpol))
+                       mpol_put(ctx->mpol);
+                       ctx->mpol = NULL;
+                       if (mpol_parse_str(value, &ctx->mpol))
                                goto bad_val;
 #endif
                } else {
@@ -3462,14 +3461,14 @@ static int shmem_parse_options(char *options, struct shmem_options *ctx)
                        goto error;
                }
        }
-       ctx->mpol = mpol;
        return 0;
 
 bad_val:
        pr_err("tmpfs: Bad value '%s' for mount option '%s'\n",
               value, this_char);
 error:
-       mpol_put(mpol);
+       mpol_put(ctx->mpol);
+       ctx->mpol = NULL;
        return 1;
 
 }