The commit is pushed to "branch-rh10-6.12.0-55.13.1.3.x.vz10-ovz" and will 
appear at [email protected]:openvz/vzkernel.git
after rh10-6.12.0-55.13.1.2.24.vz10
------>
commit 4d5cc808fa7dd95c3c3bc49078112fdb8e24229b
Author: Pavel Tikhomirov <[email protected]>
Date:   Wed Dec 10 18:34:28 2025 +0800

    ve: Always allow to attach to ve cgroup
    
    We've re-implemented the restrictions to join ve cgroup to ve namespace
    path, in previous patches, so now we remove the restrictions from cgroup
    join path. Now anyone can join ve cgroup at any moment without any
    repercussions.
    
    We need this to be able to make ve cgroup working with intermediate
    cgroups in cgroup-v2 hierarchy.
    
    https://virtuozzo.atlassian.net/browse/VSTOR-119941
    Signed-off-by: Pavel Tikhomirov <[email protected]>
    
    Feature: ve: ve generic structures
---
 kernel/ve/ve.c | 71 ----------------------------------------------------------
 1 file changed, 71 deletions(-)

diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c
index 9e6eda40f4cdd..c4791527e2cfc 100644
--- a/kernel/ve/ve.c
+++ b/kernel/ve/ve.c
@@ -1101,76 +1101,6 @@ static void ve_destroy(struct cgroup_subsys_state *css)
        kmem_cache_free(ve_cachep, ve);
 }
 
-static bool ve_task_can_attach(struct cgroup_taskset *tset)
-{
-       struct cgroup_subsys_state *css;
-       struct task_struct *task;
-
-       task = cgroup_taskset_first(tset, &css);
-       if (task != current)
-               pr_err_ratelimited("ve_cgroup: Add task_work-based interface 
for attaching!!!\n");
-
-       if (cgroup_taskset_next(tset, &css) != NULL) {
-               pr_err_ratelimited("ve_cgroup: attach of a thread group is not 
supported\n");
-               return false;
-       }
-       if (!thread_group_leader(task)) {
-               pr_err_ratelimited("ve_cgroup: only thread group leader is 
allowed to attach\n");
-               return false;
-       }
-       if (!thread_group_empty(task)) {
-               pr_err_ratelimited("ve_cgroup: only single-threaded process is 
allowed to attach\n");
-               return false;
-       }
-       return true;
-}
-
-static int ve_is_attachable(struct cgroup_taskset *tset)
-{
-       struct cgroup_subsys_state *css;
-       struct task_struct *task;
-       struct ve_struct *ve;
-
-       task = cgroup_taskset_first(tset, &css);
-       ve = css_to_ve(css);
-
-       if (VE_IS_RUNNING(ve))
-               return 0;
-
-       if (!ve->veid) {
-               pr_err_ratelimited("ve_cgroup: container's veid is not set\n");
-               return -EINVAL;
-       }
-
-       if (task->flags & PF_KTHREAD) {
-               /* Paranoia check: allow to attach kthread only, if cgroup is
-                * not empty.
-                * This check is required for kthreadd, which is created on CT
-                * start.
-                */
-               if (cgroup_is_populated(css->cgroup))
-                       return 0;
-               pr_err_ratelimited("ve_cgroup: can't attach kthread - empty 
group\n");
-       } else {
-               /* In case of generic task only one is allowed to enter to
-                * non-running container: init.
-                */
-               if (!cgroup_is_populated(css->cgroup))
-                       return 0;
-               pr_err_ratelimited("ve_cgroup: can't attach more than 1 task to 
"
-                               "non-running container\n");
-       }
-       return -EINVAL;
-}
-
-static int ve_can_attach(struct cgroup_taskset *tset)
-{
-       if (!ve_task_can_attach(tset))
-               return -EINVAL;
-
-       return ve_is_attachable(tset);
-}
-
 static int ve_state_show(struct seq_file *sf, void *v)
 {
        struct cgroup_subsys_state *css = seq_css(sf);
@@ -1876,7 +1806,6 @@ struct cgroup_subsys ve_cgrp_subsys = {
        .css_online     = ve_online,
        .css_offline    = ve_offline,
        .css_free       = ve_destroy,
-       .can_attach     = ve_can_attach,
        .legacy_cftypes = ve_cftypes,
        .dfl_cftypes    = ve_cftypes,
 };
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to