Commit c8163ca8 authored by Li Zefan's avatar Li Zefan Committed by Linus Torvalds
Browse files

cpuset: remove unneeded NODEMASK_ALLOC() in cpuset_attach()



oldcs->mems_allowed is not modified during cpuset_attach(), so we don't
have to copy it to a buffer allocated by NODEMASK_ALLOC().  Just pass it
to cpuset_migrate_mm().

Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
Cc: Paul Menage <menage@google.com>
Acked-by: default avatarDavid Rientjes <rientjes@google.com>
Cc: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 9303e0c4
Loading
Loading
Loading
Loading
+2 −5
Original line number Diff line number Diff line
@@ -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);
}