[Devel] [PATCH v10 9/9] ve/cgroup: set release_agent_path for root cgroups separately for each ve.

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Fri Apr 17 11:25:02 MSK 2020


> diff --git a/kernel/cgroup.c b/kernel/cgroup.c
> index fa1a881..9b7c8f3 100644
> --- a/kernel/cgroup.c
> +++ b/kernel/cgroup.c
> @@ -1094,10 +1094,21 @@ static int rebind_subsystems(struct cgroupfs_root *root,
>   
>   static int cgroup_show_options(struct seq_file *seq, struct dentry *dentry)
>   {
> +	const char *release_agent;
>   	struct cgroupfs_root *root = dentry->d_sb->s_fs_info;
>   	struct cgroup_subsys *ss;
> +	struct cgroup *root_cgrp = &root->top_cgroup;
>   
> +#ifdef CONFIG_VE
> +	struct ve_struct *ve = get_exec_env();
> +	if (!ve_is_super(ve)) {
> +		mutex_lock(&cgroup_mutex);
> +		root_cgrp = task_cgroup_from_root(ve->init_task, root);

And here css_cgroup_from_root will also fit.

> +		mutex_unlock(&cgroup_mutex);
> +	}
> +#endif
>   	mutex_lock(&cgroup_root_mutex);
> +
>   	for_each_subsys(root, ss)
>   		seq_printf(seq, ",%s", ss->name);
>   	if (root->flags & CGRP_ROOT_SANE_BEHAVIOR)


More information about the Devel mailing list