[Devel] [PATCH RHEL10 COMMIT] cgroup: use __cset_cgroup_from_root in VZ slice join/leave

Konstantin Khorenko khorenko at virtuozzo.com
Thu Apr 9 10:39:10 MSK 2026


The commit is pushed to "branch-rh10-6.12.0-55.52.1.5.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-55.52.1.5.13.vz10
------>
commit 75f66c80c559c2dfe8daf66111af5700b59934b9
Author: Vasileios Almpanis <vasileios.almpanis at virtuozzo.com>
Date:   Thu Apr 2 07:36:22 2026 +0000

    cgroup: use __cset_cgroup_from_root in VZ slice join/leave
    
    cset_cgroup_from_root() uses lockdep_assert_held(&css_set_lock), but
    cgroup_join_vz_slice() and cgroup_leave_vz_slice() only stabilize the VE
    nsproxy/cgroup_ns root_cset via rcu_dereference_protected().
    For the default hierarchy the result is just cset->dfl_cgrp, which is
    safe to read without css_set_lock (see current_cgns_cgroup_dfl()).
    Call __cset_cgroup_from_root() instead so lockdep matches the actual
    locking rules.
    
    https://virtuozzo.atlassian.net/browse/VSTOR-128317
    
    Signed-off-by: Vasileios Almpanis <vasileios.almpanis at virtuozzo.com>
    
    Feature: ve: ve generic structures
---
 kernel/cgroup/cgroup.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index 376c9bbd1c41e..932414b882dd9 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -2243,7 +2243,7 @@ int cgroup_join_vz_slice(struct ve_struct *ve)
 	int ret;
 
 	cset = rcu_dereference_protected(ve->ve_nsproxy, 1)->cgroup_ns->root_cset;
-	cgrp = cset_cgroup_from_root(cset, &cgrp_dfl_root);
+	cgrp = __cset_cgroup_from_root(cset, &cgrp_dfl_root);
 
 	if (!is_virtualized_cgroup(cgrp) ||
 	    !test_bit(CGRP_VE_ROOT, &cgrp->flags))
@@ -2278,7 +2278,7 @@ int cgroup_leave_vz_slice(struct ve_struct *ve)
 	struct cgroup *cgrp;
 
 	cset = rcu_dereference_protected(ve->ve_nsproxy, 1)->cgroup_ns->root_cset;
-	cgrp = cset_cgroup_from_root(cset, &cgrp_dfl_root);
+	cgrp = __cset_cgroup_from_root(cset, &cgrp_dfl_root);
 
 	if (!is_virtualized_cgroup(cgrp) ||
 	    !test_bit(CGRP_VE_ROOT, &cgrp->flags))


More information about the Devel mailing list