]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
cgroups: fail when no cgroup hierarchies are found
authorChristian Brauner <christian.brauner@ubuntu.com>
Tue, 16 Feb 2021 12:28:48 +0000 (13:28 +0100)
committerChristian Brauner <christian.brauner@ubuntu.com>
Tue, 16 Feb 2021 12:28:48 +0000 (13:28 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/cgroups/cgfsng.c
src/lxc/cgroups/cgroup.c

index 6d7504e7e2748e96a06b54130a3d8c4f603f68fa..b237b75a94d71b0bc4b9b99219354c3c5f15caae 100644 (file)
@@ -922,29 +922,6 @@ static int get_existing_subsystems(char ***klist, char ***nlist)
        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)
 {
@@ -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
         * controllers are accounted for
         */
index 1350e78c0a3ab5d8a06f129d22b169cb2ca0e091..9ba7a18608a6ea92ec30d6e2c5cb51eab16686bd 100644 (file)
@@ -33,10 +33,14 @@ struct cgroup_ops *cgroup_init(struct lxc_conf *conf)
        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);