|
@@ -1787,16 +1787,6 @@ struct mempolicy *__mpol_cond_copy(struct mempolicy *tompol,
|
|
return tompol;
|
|
return tompol;
|
|
}
|
|
}
|
|
|
|
|
|
-static int mpol_match_intent(const struct mempolicy *a,
|
|
|
|
- const struct mempolicy *b)
|
|
|
|
-{
|
|
|
|
- if (a->flags != b->flags)
|
|
|
|
- return 0;
|
|
|
|
- if (!mpol_store_user_nodemask(a))
|
|
|
|
- return 1;
|
|
|
|
- return nodes_equal(a->w.user_nodemask, b->w.user_nodemask);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/* Slow path of a mempolicy comparison */
|
|
/* Slow path of a mempolicy comparison */
|
|
int __mpol_equal(struct mempolicy *a, struct mempolicy *b)
|
|
int __mpol_equal(struct mempolicy *a, struct mempolicy *b)
|
|
{
|
|
{
|
|
@@ -1804,8 +1794,12 @@ int __mpol_equal(struct mempolicy *a, struct mempolicy *b)
|
|
return 0;
|
|
return 0;
|
|
if (a->mode != b->mode)
|
|
if (a->mode != b->mode)
|
|
return 0;
|
|
return 0;
|
|
- if (a->mode != MPOL_DEFAULT && !mpol_match_intent(a, b))
|
|
|
|
|
|
+ if (a->flags != b->flags)
|
|
return 0;
|
|
return 0;
|
|
|
|
+ if (mpol_store_user_nodemask(a))
|
|
|
|
+ if (!nodes_equal(a->w.user_nodemask, b->w.user_nodemask))
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
switch (a->mode) {
|
|
switch (a->mode) {
|
|
case MPOL_BIND:
|
|
case MPOL_BIND:
|
|
/* Fall through */
|
|
/* Fall through */
|