aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/mempolicy.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index fb71790398f0..6cdfa1df57f6 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -2195,8 +2195,8 @@ int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context)
2195 char *rest = nodelist; 2195 char *rest = nodelist;
2196 while (isdigit(*rest)) 2196 while (isdigit(*rest))
2197 rest++; 2197 rest++;
2198 if (!*rest) 2198 if (*rest)
2199 err = 0; 2199 goto out;
2200 } 2200 }
2201 break; 2201 break;
2202 case MPOL_INTERLEAVE: 2202 case MPOL_INTERLEAVE:
@@ -2205,7 +2205,6 @@ int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context)
2205 */ 2205 */
2206 if (!nodelist) 2206 if (!nodelist)
2207 nodes = node_states[N_HIGH_MEMORY]; 2207 nodes = node_states[N_HIGH_MEMORY];
2208 err = 0;
2209 break; 2208 break;
2210 case MPOL_LOCAL: 2209 case MPOL_LOCAL:
2211 /* 2210 /*
@@ -2214,7 +2213,6 @@ int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context)
2214 if (nodelist) 2213 if (nodelist)
2215 goto out; 2214 goto out;
2216 mode = MPOL_PREFERRED; 2215 mode = MPOL_PREFERRED;
2217 err = 0;
2218 break; 2216 break;
2219 case MPOL_DEFAULT: 2217 case MPOL_DEFAULT:
2220 /* 2218 /*
@@ -2229,7 +2227,6 @@ int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context)
2229 */ 2227 */
2230 if (!nodelist) 2228 if (!nodelist)
2231 goto out; 2229 goto out;
2232 err = 0;
2233 } 2230 }
2234 2231
2235 mode_flags = 0; 2232 mode_flags = 0;
@@ -2243,13 +2240,14 @@ int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context)
2243 else if (!strcmp(flags, "relative")) 2240 else if (!strcmp(flags, "relative"))
2244 mode_flags |= MPOL_F_RELATIVE_NODES; 2241 mode_flags |= MPOL_F_RELATIVE_NODES;
2245 else 2242 else
2246 err = 1; 2243 goto out;
2247 } 2244 }
2248 2245
2249 new = mpol_new(mode, mode_flags, &nodes); 2246 new = mpol_new(mode, mode_flags, &nodes);
2250 if (IS_ERR(new)) 2247 if (IS_ERR(new))
2251 err = 1; 2248 goto out;
2252 else { 2249
2250 {
2253 int ret; 2251 int ret;
2254 NODEMASK_SCRATCH(scratch); 2252 NODEMASK_SCRATCH(scratch);
2255 if (scratch) { 2253 if (scratch) {
@@ -2260,13 +2258,15 @@ int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context)
2260 ret = -ENOMEM; 2258 ret = -ENOMEM;
2261 NODEMASK_SCRATCH_FREE(scratch); 2259 NODEMASK_SCRATCH_FREE(scratch);
2262 if (ret) { 2260 if (ret) {
2263 err = 1;
2264 mpol_put(new); 2261 mpol_put(new);
2265 } else if (no_context) { 2262 goto out;
2266 /* save for contextualization */
2267 new->w.user_nodemask = nodes;
2268 } 2263 }
2269 } 2264 }
2265 err = 0;
2266 if (no_context) {
2267 /* save for contextualization */
2268 new->w.user_nodemask = nodes;
2269 }
2270 2270
2271out: 2271out:
2272 /* Restore string for error message */ 2272 /* Restore string for error message */