From: Christian Brauner Date: Wed, 24 Feb 2021 08:41:32 +0000 (+0100) Subject: cgroups: handle fallback gracefully X-Git-Tag: lxc-5.0.0~269^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8dfcf0df6c14dbf31c92a66e42faeba98f03609d;p=thirdparty%2Flxc.git cgroups: handle fallback gracefully Signed-off-by: Christian Brauner --- diff --git a/src/lxc/cgroups/cgfsng.c b/src/lxc/cgroups/cgfsng.c index a27c89ad9..59f024290 100644 --- a/src/lxc/cgroups/cgfsng.c +++ b/src/lxc/cgroups/cgfsng.c @@ -3460,7 +3460,7 @@ int cgroup_get(const char *name, const char *lxcpath, unified_fd = lxc_cmd_get_limiting_cgroup2_fd(name, lxcpath); if (unified_fd < 0) - return ret_errno(ENOCGROUP2); + return ret_errno(ENOSYS); ret = lxc_read_try_buf_at(unified_fd, filename, buf, len); if (ret < 0) @@ -3482,7 +3482,7 @@ int cgroup_set(const char *name, const char *lxcpath, unified_fd = lxc_cmd_get_limiting_cgroup2_fd(name, lxcpath); if (unified_fd < 0) - return ret_errno(ENOCGROUP2); + return ret_errno(ENOSYS); if (strnequal(filename, "devices.", STRLITERALLEN("devices."))) { struct device_item device = {}; diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index 1d53907eb..5d43815c7 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -3290,7 +3290,7 @@ static bool do_lxcapi_set_cgroup_item(struct lxc_container *c, const char *subsy return false; ret = cgroup_set(c->name, c->config_path, subsys, value); - if (ret == -ENOCGROUP2) { + if (ret < 0 && ERRNO_IS_NOT_SUPPORTED(ret)) { cgroup_ops = cgroup_init(c->lxc_conf); if (!cgroup_ops) return false; @@ -3315,7 +3315,7 @@ static int do_lxcapi_get_cgroup_item(struct lxc_container *c, const char *subsys return -1; ret = cgroup_get(c->name, c->config_path, subsys, retv, inlen); - if (ret == -ENOCGROUP2) { + if (ret < 0 && ERRNO_IS_NOT_SUPPORTED(ret)) { cgroup_ops = cgroup_init(c->lxc_conf); if (!cgroup_ops) return -1;