On 09.07.2021 02:23, Andrey Zhadchenko wrote: > Reuse css_local_root to ascend to marked css. > > https://jira.sw.ru/browse/PSBM-131253 > Signed-off-by: Andrey Zhadchenko <[email protected]> > --- > kernel/ve/ve.c | 16 +++------------- > 1 file changed, 3 insertions(+), 13 deletions(-) > > diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c > index 9667f90..0f42971 100644 > --- a/kernel/ve/ve.c > +++ b/kernel/ve/ve.c > @@ -392,8 +392,7 @@ const char *ve_get_release_agent_path(struct ve_struct > *ve, > > struct cgroup_subsys_state *ve_get_init_css(struct ve_struct *ve, int > subsys_id) > { > - struct cgroup_subsys_state *css, *tmp; > - struct cgroup *cgroup; > + struct cgroup_subsys_state *css; > struct css_set *root_cset; > struct nsproxy *nsproxy; > > @@ -403,18 +402,9 @@ struct cgroup_subsys_state *ve_get_init_css(struct > ve_struct *ve, int subsys_id) > root_cset = nsproxy->cgroup_ns->root_cset; > css = root_cset->subsys[subsys_id]; > /* nsproxy->cgroup_ns must hold root_cset refcnt */ > - BUG_ON(!css_tryget(css)); > - > - cgroup = css->cgroup; > - while (!test_bit(CGRP_VE_ROOT, &cgroup->flags) && cgroup_parent(cgroup)) > - cgroup = cgroup_parent(cgroup); > > - if (cgroup != css->cgroup) { > - tmp = cgroup->subsys[subsys_id]; > - css_get(tmp); > - css_put(css); > - css = tmp; > - } > + css = css_local_root(css); > + BUG_ON(!css_tryget(css)); > > rcu_read_unlock(); > return css;
Looks OK. Since child is definitely alive (BUG_ON() even says this), parent is also alive. So, we may simplify this. Reviewed-by: Kirill Tkhai <[email protected]> _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
