From: Christian Brauner Date: Sat, 17 Feb 2018 18:27:52 +0000 (+0100) Subject: cgfsng: cgfsng_create() X-Git-Tag: lxc-2.0.10~283 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d1ef2d9187e1986c0b4c2066734c9546fd338bcf;p=thirdparty%2Flxc.git cgfsng: cgfsng_create() Signed-off-by: Christian Brauner --- diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c index ca025268f..081a06311 100644 --- a/src/lxc/cgroups/cgfsng.c +++ b/src/lxc/cgroups/cgfsng.c @@ -1746,9 +1746,8 @@ static void remove_path_for_hierarchy(struct hierarchy *h, char *cgname) h->fullcgpath = NULL; } -/* - * Try to create the same cgroup in all hierarchies. - * Start with cgroup_pattern; next cgroup_pattern-1, -2, ..., -999 +/* Try to create the same cgroup in all hierarchies. Start with cgroup_pattern; + * next cgroup_pattern-1, -2, ..., -999. */ static inline bool cgfsng_create(void *hdata) { @@ -1782,6 +1781,7 @@ again: ERROR("Too many conflicting cgroup names"); goto out_free; } + if (idx) { int ret; @@ -1796,10 +1796,11 @@ again: } } } + for (i = 0; hierarchies[i]; i++) { if (!create_path_for_hierarchy(hierarchies[i], container_cgroup)) { int j; - ERROR("Failed to create \"%s\"", hierarchies[i]->fullcgpath); + ERROR("Failed to create cgroup \"%s\"", hierarchies[i]->fullcgpath); free(hierarchies[i]->fullcgpath); hierarchies[i]->fullcgpath = NULL; for (j = 0; j < i; j++) @@ -1808,12 +1809,14 @@ again: goto again; } } - /* Done */ + d->container_cgroup = container_cgroup; + return true; out_free: free(container_cgroup); + return false; }