Instead of using current's mems_allowed, which may differ from the
mems_allowed of the cpuset being updated, the newmask passed to
mpol_rebind_mm() is used as the interleave mask in the
memory_spread_user case.

Cc: Andi Kleen <[EMAIL PROTECTED]>
Cc: Paul Jackson <[EMAIL PROTECTED]>
Cc: Christoph Lameter <[EMAIL PROTECTED]>
Cc: Lee Schermerhorn <[EMAIL PROTECTED]>
Signed-off-by: David Rientjes <[EMAIL PROTECTED]>
---
 mm/mempolicy.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/mm/mempolicy.c b/mm/mempolicy.c
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -1740,7 +1740,7 @@ static void mpol_rebind_policy(struct mempolicy *pol,
                break;
        case MPOL_INTERLEAVE:
                if (current_cpuset_is_spread_user())
-                       tmp = cpuset_mems_allowed(current);
+                       tmp = *newmask;
                else
                        nodes_remap(tmp, pol->v.nodes, *mpolmask, *newmask);
                pol->v.nodes = tmp;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to