return 0;
}
-static void lxc_cgfsng_print_hierarchies(struct cgroup_ops *ops)
-{
- int i;
- struct hierarchy **it;
-
- if (!ops->hierarchies) {
- TRACE(" No hierarchies found");
- return;
- }
-
- TRACE(" Hierarchies:");
- for (i = 0, it = ops->hierarchies; it && *it; it++, i++) {
- int j;
- char **cit;
-
- TRACE(" %d: base_cgroup: %s", i, (*it)->container_base_path ? (*it)->container_base_path : "(null)");
- TRACE(" mountpoint: %s", (*it)->mountpoint ? (*it)->mountpoint : "(null)");
- TRACE(" controllers:");
- for (j = 0, cit = (*it)->controllers; cit && *cit; cit++, j++)
- TRACE(" %d: %s", j, *cit);
- }
-}
-
static void lxc_cgfsng_print_basecg_debuginfo(char *basecginfo, char **klist,
char **nlist)
{
}
}
- TRACE("Writable cgroup hierarchies:");
- lxc_cgfsng_print_hierarchies(ops);
-
/* verify that all controllers in cgroup.use and all crucial
* controllers are accounted for
*/
if (!cgroup_ops)
return log_error_errno(NULL, errno, "Failed to initialize cgroup driver");
+ if (!cgroup_ops->hierarchies) {
+ cgroup_exit(cgroup_ops);
+ return log_error_errno(NULL, ENOENT, "No cgroup hierarchies found");
+ }
+
if (cgroup_ops->data_init(cgroup_ops)) {
cgroup_exit(cgroup_ops);
- return log_error_errno(NULL, errno,
- "Failed to initialize cgroup data");
+ return log_error_errno(NULL, errno, "Failed to initialize cgroup data");
}
TRACE("Initialized cgroup driver %s", cgroup_ops->driver);