diff options
| author | Zhihui Zhang <zzhsuny@gmail.com> | 2014-12-18 19:17:09 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-12-18 22:08:10 -0500 |
| commit | 859f7ef142a956676cb387b90f18e2e71e959c68 (patch) | |
| tree | 3ab6951a0023b6dafa27be536cb181fcabd89c1e | |
| parent | 44e8967d591686463e84a88b46b03beba3ab49fb (diff) | |
mm/mempolicy.c: remove unnecessary is_valid_nodemask()
When nodes is true, nsc->mask2 has already been filtered by nsc->mask1,
which has already factored in node_states[N_MEMORY].
Signed-off-by: Zhihui Zhang <zzhsuny@gmail.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | mm/mempolicy.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index e58725aff7e9..f22c55947181 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c | |||
| @@ -162,12 +162,6 @@ static const struct mempolicy_operations { | |||
| 162 | enum mpol_rebind_step step); | 162 | enum mpol_rebind_step step); |
| 163 | } mpol_ops[MPOL_MAX]; | 163 | } mpol_ops[MPOL_MAX]; |
| 164 | 164 | ||
| 165 | /* Check that the nodemask contains at least one populated zone */ | ||
| 166 | static int is_valid_nodemask(const nodemask_t *nodemask) | ||
| 167 | { | ||
| 168 | return nodes_intersects(*nodemask, node_states[N_MEMORY]); | ||
| 169 | } | ||
| 170 | |||
| 171 | static inline int mpol_store_user_nodemask(const struct mempolicy *pol) | 165 | static inline int mpol_store_user_nodemask(const struct mempolicy *pol) |
| 172 | { | 166 | { |
| 173 | return pol->flags & MPOL_MODE_FLAGS; | 167 | return pol->flags & MPOL_MODE_FLAGS; |
| @@ -202,7 +196,7 @@ static int mpol_new_preferred(struct mempolicy *pol, const nodemask_t *nodes) | |||
| 202 | 196 | ||
| 203 | static int mpol_new_bind(struct mempolicy *pol, const nodemask_t *nodes) | 197 | static int mpol_new_bind(struct mempolicy *pol, const nodemask_t *nodes) |
| 204 | { | 198 | { |
| 205 | if (!is_valid_nodemask(nodes)) | 199 | if (nodes_empty(*nodes)) |
| 206 | return -EINVAL; | 200 | return -EINVAL; |
| 207 | pol->v.nodes = *nodes; | 201 | pol->v.nodes = *nodes; |
| 208 | return 0; | 202 | return 0; |
| @@ -234,7 +228,7 @@ static int mpol_set_nodemask(struct mempolicy *pol, | |||
| 234 | nodes = NULL; /* explicit local allocation */ | 228 | nodes = NULL; /* explicit local allocation */ |
| 235 | else { | 229 | else { |
| 236 | if (pol->flags & MPOL_F_RELATIVE_NODES) | 230 | if (pol->flags & MPOL_F_RELATIVE_NODES) |
| 237 | mpol_relative_nodemask(&nsc->mask2, nodes,&nsc->mask1); | 231 | mpol_relative_nodemask(&nsc->mask2, nodes, &nsc->mask1); |
| 238 | else | 232 | else |
| 239 | nodes_and(nsc->mask2, *nodes, nsc->mask1); | 233 | nodes_and(nsc->mask2, *nodes, nsc->mask1); |
| 240 | 234 | ||
