|
@@ -475,13 +475,17 @@ static int validate_change(const struct cpuset *cur, const struct cpuset *trial)
|
|
|
|
|
|
/*
|
|
|
* Cpusets with tasks - existing or newly being attached - can't
|
|
|
- * have empty cpus_allowed or mems_allowed.
|
|
|
+ * be changed to have empty cpus_allowed or mems_allowed.
|
|
|
*/
|
|
|
ret = -ENOSPC;
|
|
|
- if ((cgroup_task_count(cur->css.cgroup) || cur->attach_in_progress) &&
|
|
|
- (cpumask_empty(trial->cpus_allowed) &&
|
|
|
- nodes_empty(trial->mems_allowed)))
|
|
|
- goto out;
|
|
|
+ if ((cgroup_task_count(cur->css.cgroup) || cur->attach_in_progress)) {
|
|
|
+ if (!cpumask_empty(cur->cpus_allowed) &&
|
|
|
+ cpumask_empty(trial->cpus_allowed))
|
|
|
+ goto out;
|
|
|
+ if (!nodes_empty(cur->mems_allowed) &&
|
|
|
+ nodes_empty(trial->mems_allowed))
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
|
|
|
ret = 0;
|
|
|
out:
|