/* Called with cgroup_mutex held callback_mutex must not be held, as cpuset_attach() will take it.  */
static void remove_tasks_in_empty_cpuset(struct cpuset *cs)
/* Called with cgroup_mutex held callback_mutex must not be held, as cpuset_attach() will take it.  */
static void remove_tasks_in_empty_cpuset(struct cpuset *cs)
{
	struct cpuset *parent;
	if (list_empty(&cs->css.cgroup->css_sets))
		return;
	parent = cs->parent;
	while (cpumask_empty(parent->cpus_allowed) ||
			nodes_empty(parent->mems_allowed))
		parent = parent->parent;
	move_member_tasks_to_cpuset(cs, parent);
}