[PATCH] cgroup/cpuset: Fix update_prstate() always returning 0 on partition errors
From: Tao Cui
Date: Tue Jun 02 2026 - 00:39:18 EST
From: Tao Cui <cuitao@xxxxxxxxxx>
update_prstate() stores the error code in cs->prs_err and transitions
the partition to an invalid state, but always returns 0. The caller
cpuset_partition_write() uses "return retval ?: nbytes", so the write
syscall always appears to succeed from userspace even when the partition
became invalid. Return -EINVAL when err is set so userspace can detect
the failure immediately.
Co-Authored-By: Claude Opus 4.7 <noreply@xxxxxxxxxxxxx>
---
kernel/cgroup/cpuset.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index 591e3aa487fc..8605b4da610e 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -2965,7 +2965,7 @@ static int update_prstate(struct cpuset *cs, int new_prs)
if (force_sd_rebuild)
rebuild_sched_domains_locked();
free_tmpmasks(&tmpmask);
- return 0;
+ return err ? -EINVAL : 0;
}
static struct cpuset *cpuset_attach_old_cs;
--
2.43.0