From: Christian Brauner Date: Sun, 24 Sep 2017 12:07:31 +0000 (+0200) Subject: cgfsng: fail when limits fail to apply X-Git-Tag: lxc-2.0.9~14^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bab07a29c42702002d21caacbbadf003470af330;p=thirdparty%2Flxc.git cgfsng: fail when limits fail to apply So far, we silently skipped over limits that failed to be applied which is very odd. Let's error on when cgroup limits fail to apply. Signed-off-by: Christian Brauner --- diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c index e1b2f61b6..a3f0ce381 100644 --- a/src/lxc/cgroups/cgfsng.c +++ b/src/lxc/cgroups/cgfsng.c @@ -1913,21 +1913,28 @@ static int cgfsng_set(const char *filename, const char *value, const char *name, */ static int lxc_cgroup_set_data(const char *filename, const char *value, struct cgfsng_handler_data *d) { - char *subsystem = NULL, *p; - int ret = -1; + char *fullpath, *p; struct hierarchy *h; + int ret = 0; + char *controller = NULL; - subsystem = alloca(strlen(filename) + 1); - strcpy(subsystem, filename); - if ((p = strchr(subsystem, '.')) != NULL) + controller = alloca(strlen(filename) + 1); + strcpy(controller, filename); + if ((p = strchr(controller, '.')) != NULL) *p = '\0'; - h = get_hierarchy(subsystem); - if (h) { - char *fullpath = must_make_path(h->fullcgpath, filename, NULL); - ret = lxc_write_to_file(fullpath, value, strlen(value), false); - free(fullpath); + h = get_hierarchy(controller); + if (!h) { + ERROR("Failed to setup limits for the \"%s\" controller. " + "The controller seems to be unused by \"cgfsng\" cgroup " + "driver or not enabled on the cgroup hierarchy", + controller); + return -1; } + + fullpath = must_make_path(h->fullcgpath, filename, NULL); + ret = lxc_write_to_file(fullpath, value, strlen(value), false); + free(fullpath); return ret; }