From: Chen Ridong <chenridong@huawei.com>
The nodelist_parse function already handles empty nodemask input
appropriately, making it unnecessary to handle this case separately
during the node mask update process.
Signed-off-by: Chen Ridong <chenridong@huawei.com>
---
kernel/cgroup/cpuset.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 535174ed7126..20dface3c3e0 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -2847,22 +2847,16 @@ static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs,
/*
* An empty mems_allowed is ok iff there are no tasks in the cpuset.
- * Since nodelist_parse() fails on an empty mask, we special case
- * that parsing. The validate_change() call ensures that cpusets
- * with tasks have memory.
+ * The validate_change() call ensures that cpusets with tasks have memory.
*/
- if (!*buf) {
- nodes_clear(trialcs->mems_allowed);
- } else {
- retval = nodelist_parse(buf, trialcs->mems_allowed);
- if (retval < 0)
- goto done;
+ retval = nodelist_parse(buf, trialcs->mems_allowed);
+ if (retval < 0)
+ goto done;
- if (!nodes_subset(trialcs->mems_allowed,
- top_cpuset.mems_allowed)) {
- retval = -EINVAL;
- goto done;
- }
+ if (!nodes_subset(trialcs->mems_allowed,
+ top_cpuset.mems_allowed)) {
+ retval = -EINVAL;
+ goto done;
}
if (nodes_equal(cs->mems_allowed, trialcs->mems_allowed)) {
--
2.34.1
On 9/22/25 9:02 AM, Chen Ridong wrote: > From: Chen Ridong <chenridong@huawei.com> > > The nodelist_parse function already handles empty nodemask input > appropriately, making it unnecessary to handle this case separately > during the node mask update process. > > Signed-off-by: Chen Ridong <chenridong@huawei.com> > --- > kernel/cgroup/cpuset.c | 22 ++++++++-------------- > 1 file changed, 8 insertions(+), 14 deletions(-) > > diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c > index 535174ed7126..20dface3c3e0 100644 > --- a/kernel/cgroup/cpuset.c > +++ b/kernel/cgroup/cpuset.c > @@ -2847,22 +2847,16 @@ static int update_nodemask(struct cpuset *cs, struct cpuset *trialcs, > > /* > * An empty mems_allowed is ok iff there are no tasks in the cpuset. > - * Since nodelist_parse() fails on an empty mask, we special case > - * that parsing. The validate_change() call ensures that cpusets > - * with tasks have memory. > + * The validate_change() call ensures that cpusets with tasks have memory. > */ > - if (!*buf) { > - nodes_clear(trialcs->mems_allowed); > - } else { > - retval = nodelist_parse(buf, trialcs->mems_allowed); > - if (retval < 0) > - goto done; > + retval = nodelist_parse(buf, trialcs->mems_allowed); > + if (retval < 0) > + goto done; > > - if (!nodes_subset(trialcs->mems_allowed, > - top_cpuset.mems_allowed)) { > - retval = -EINVAL; > - goto done; > - } > + if (!nodes_subset(trialcs->mems_allowed, > + top_cpuset.mems_allowed)) { > + retval = -EINVAL; > + goto done; > } > > if (nodes_equal(cs->mems_allowed, trialcs->mems_allowed)) { Right, the *buf check is no longer need with the current version fof nodelist_parse(). Reveiwed-by: Waiman Long <longman@redhat.com>
© 2016 - 2025 Red Hat, Inc.