cgroups: fail when no cgroup hierarchies are found

parent 600a0163
...@@ -922,29 +922,6 @@ static int get_existing_subsystems(char ***klist, char ***nlist) ...@@ -922,29 +922,6 @@ static int get_existing_subsystems(char ***klist, char ***nlist)
return 0; 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, static void lxc_cgfsng_print_basecg_debuginfo(char *basecginfo, char **klist,
char **nlist) char **nlist)
{ {
...@@ -3465,9 +3442,6 @@ static int cg_hybrid_init(struct cgroup_ops *ops, bool relative, bool unprivileg ...@@ -3465,9 +3442,6 @@ static int cg_hybrid_init(struct cgroup_ops *ops, bool relative, bool unprivileg
} }
} }
TRACE("Writable cgroup hierarchies:");
lxc_cgfsng_print_hierarchies(ops);
/* verify that all controllers in cgroup.use and all crucial /* verify that all controllers in cgroup.use and all crucial
* controllers are accounted for * controllers are accounted for
*/ */
......
...@@ -33,10 +33,14 @@ struct cgroup_ops *cgroup_init(struct lxc_conf *conf) ...@@ -33,10 +33,14 @@ struct cgroup_ops *cgroup_init(struct lxc_conf *conf)
if (!cgroup_ops) if (!cgroup_ops)
return log_error_errno(NULL, errno, "Failed to initialize cgroup driver"); 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)) { if (cgroup_ops->data_init(cgroup_ops)) {
cgroup_exit(cgroup_ops); cgroup_exit(cgroup_ops);
return log_error_errno(NULL, errno, return log_error_errno(NULL, errno, "Failed to initialize cgroup data");
"Failed to initialize cgroup data");
} }
TRACE("Initialized cgroup driver %s", cgroup_ops->driver); TRACE("Initialized cgroup driver %s", cgroup_ops->driver);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment