return move_ptr(aret);
}
-static struct hierarchy *add_hierarchy(struct hierarchy ***h, char **clist, char *mountpoint,
+static struct hierarchy *add_hierarchy(struct cgroup_ops *ops,
+ char **clist, char *mountpoint,
char *container_base_path, int type)
{
struct hierarchy *new;
new = zalloc(sizeof(*new));
if (!new)
return ret_set_errno(NULL, ENOMEM);
+
new->controllers = clist;
new->mountpoint = mountpoint;
new->container_base_path = container_base_path;
new->cgfd_limit = -EBADF;
new->cgfd_mon = -EBADF;
- newentry = append_null_to_list((void ***)h);
- (*h)[newentry] = new;
+ newentry = append_null_to_list((void ***)&ops->hierarchies);
+ (ops->hierarchies)[newentry] = new;
return new;
}
continue;
}
- new = add_hierarchy(&ops->hierarchies, move_ptr(controller_list), move_ptr(mountpoint), move_ptr(base_cgroup), type);
+ new = add_hierarchy(ops, move_ptr(controller_list), move_ptr(mountpoint), move_ptr(base_cgroup), type);
if (!new)
return log_error_errno(-1, errno, "Failed to add cgroup hierarchy");
if (type == CGROUP2_SUPER_MAGIC && !ops->unified) {
* controllers per container.
*/
- new = add_hierarchy(&ops->hierarchies,
+ new = add_hierarchy(ops,
move_ptr(delegatable),
must_copy_string(DEFAULT_CGROUP_MOUNTPOINT),
move_ptr(base_cgroup),