Hello, Andrey. On Fri, Aug 10, 2018 at 10:35:23PM -0700, Andrey Ignatov wrote: > +static inline struct cgroup *cgroup_ancestor(struct cgroup *cgrp, > + int ancestor_level) > +{ > + struct cgroup *ptr; > + > + if (cgrp->level < ancestor_level) > + return NULL; > + > + for (ptr = cgrp; > + ptr && ptr->level > ancestor_level; > + ptr = cgroup_parent(ptr)) > + ; > + > + if (ptr && ptr->level == ancestor_level) > + return ptr; > + > + return NULL; > +}
I don't have any objections functionanlity-wise but can we do sth like the following instead? static inline struct cgroup *cgroup_ancestor(struct cgroup *cgrp, int ancestor_level) { if (cgrp->level < ancestor_level) return NULL; while (cgrp->level > ancestor_level) cgrp = cgroup_parent(cgrp); return cgrp; } Thanks. -- tejun