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/