Messages in this thread | | | Date | Mon, 8 Apr 2013 08:57:26 -0700 | From | Tejun Heo <> | Subject | Re: [PATCH 1/8] cgroup: implement cgroup_is_ancestor() |
| |
Hello,
On Mon, Apr 08, 2013 at 04:47:50PM +0200, Michal Hocko wrote: > On Mon 08-04-13 16:20:11, Li Zefan wrote: > [...] > > @@ -5299,6 +5300,26 @@ struct cgroup_subsys_state *cgroup_css_from_dir(struct file *f, int id) > > return css ? css : ERR_PTR(-ENOENT); > > } > > > > +/** > > + * cgroup_is_ancestor - test "root" cgroup is an ancestor of "child" > > + * @child: the cgroup to be tested. > > + * @root: the cgroup supposed to be an ancestor of the child. > > + * > > + * Returns true if "root" is an ancestor of "child" in its hierarchy. > > + */ > > +bool cgroup_is_ancestor(struct cgroup *child, struct cgroup *root) > > +{ > > + int depth = child->depth; > > Is this functionality helpful for other controllers but memcg? > css_is_ancestor is currently used only by memcg code AFAICS and we can > get the same functionality easily by using something like:
It's a basic hierarchy operation. I'd prefer it to be in cgroup and in general let's try to avoid memcg-specific infrastructure. It doesn't seem to end well.
Thanks.
-- tejun
| |