|
@@ -1438,10 +1438,9 @@ static void cpuset_attach(struct cgroup_subsys *ss, struct cgroup *cont,
|
|
|
struct mm_struct *mm;
|
|
|
struct cpuset *cs = cgroup_cs(cont);
|
|
|
struct cpuset *oldcs = cgroup_cs(oldcont);
|
|
|
- NODEMASK_ALLOC(nodemask_t, from, GFP_KERNEL);
|
|
|
NODEMASK_ALLOC(nodemask_t, to, GFP_KERNEL);
|
|
|
|
|
|
- if (from == NULL || to == NULL)
|
|
|
+ if (to == NULL)
|
|
|
goto alloc_fail;
|
|
|
|
|
|
if (cs == &top_cpuset) {
|
|
@@ -1463,18 +1462,16 @@ static void cpuset_attach(struct cgroup_subsys *ss, struct cgroup *cont,
|
|
|
}
|
|
|
|
|
|
/* change mm; only needs to be done once even if threadgroup */
|
|
|
- *from = oldcs->mems_allowed;
|
|
|
*to = cs->mems_allowed;
|
|
|
mm = get_task_mm(tsk);
|
|
|
if (mm) {
|
|
|
mpol_rebind_mm(mm, to);
|
|
|
if (is_memory_migrate(cs))
|
|
|
- cpuset_migrate_mm(mm, from, to);
|
|
|
+ cpuset_migrate_mm(mm, &oldcs->mems_allowed, to);
|
|
|
mmput(mm);
|
|
|
}
|
|
|
|
|
|
alloc_fail:
|
|
|
- NODEMASK_FREE(from);
|
|
|
NODEMASK_FREE(to);
|
|
|
}
|
|
|
|