> @@ -3068,6 +3071,11 @@ EXPORT_SYMBOL_GPL(cgroup_next_descendant_pre); > * Return the rightmost descendant of @pos. If there's no descendant, > * @pos is returned. This can be used during pre-order traversal to skip > * subtree of @pos. > + * > + * While this function requires RCU read locking, it doesn't require the > + * whole traversal to be contained in a single RCU critical section. This > + * function will return the correct rightmost descendant as long as @pos is > + * accessible. > */ > struct cgroup *cgroup_rightmost_descendant(struct cgroup *pos) > { Forgot to convert cgroup_rightmost_descendat() to use cgroup_next_sibling()? do { last = pos; /* ->prev isn't RCU safe, walk ->next till the end */ pos = NULL; list_for_each_entry_rcu(tmp, &last->children, sibling) pos = tmp; } while (pos); _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers