diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-08-23 10:58:50 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-08-23 10:58:50 -0700 |
commit | e2982a04ede454b23ea2f5af11ba4d77d8a70155 (patch) | |
tree | e2ca688015cfeadb7f8f3289ba53f1073e113b17 | |
parent | f07823e163d1296fa47986edb95198390553b2cc (diff) | |
parent | 1c09b195d37fa459844036f429a0f378e70c3db6 (diff) | |
download | linux-stable-e2982a04ede454b23ea2f5af11ba4d77d8a70155.tar.gz linux-stable-e2982a04ede454b23ea2f5af11ba4d77d8a70155.tar.bz2 linux-stable-e2982a04ede454b23ea2f5af11ba4d77d8a70155.zip |
Merge branch 'for-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
Pull cgroup fix from Tejun Heo:
"A late fix for cgroup.
This fixes a behavior regression visible to userland which was created
by a commit merged during -rc1. While the behavior change isn't too
likely to be noticeable, the fix is relatively low risk and we'll need
to backport it through -stable anyway if the bug gets released"
* 'for-3.11-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
cpuset: fix a regression in validating config change
-rw-r--r-- | kernel/cpuset.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 010a0083c0ae..ea1966db34f2 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c @@ -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: |