From 69edb51d0792329df14c0aaac0466409061b0c9b Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Tue, 2 Feb 2021 18:03:41 +0100 Subject: [PATCH] lxccontainer: use cgroup_set() Signed-off-by: Christian Brauner --- src/lxc/lxccontainer.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index ccb4c5c58..c8e2b78ff 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -3277,6 +3277,7 @@ WRAP_API_1(bool, lxcapi_set_config_path, const char *) static bool do_lxcapi_set_cgroup_item(struct lxc_container *c, const char *subsys, const char *value) { call_cleaner(cgroup_exit) struct cgroup_ops *cgroup_ops = NULL; + int ret; if (!c) return false; @@ -3284,12 +3285,16 @@ static bool do_lxcapi_set_cgroup_item(struct lxc_container *c, const char *subsy if (is_stopped(c)) return false; - cgroup_ops = cgroup_init(c->lxc_conf); - if (!cgroup_ops) - return false; + ret = cgroup_set(c->lxc_conf, c->name, c->config_path, subsys, value); + if (ret == ENOCGROUP2) { + cgroup_ops = cgroup_init(c->lxc_conf); + if (!cgroup_ops) + return false; + + ret = cgroup_ops->set(cgroup_ops, subsys, value, c->name, c->config_path) == 0; + } - return cgroup_ops->set(cgroup_ops, subsys, value, c->name, - c->config_path) == 0; + return ret == 0; } WRAP_API_2(bool, lxcapi_set_cgroup_item, const char *, const char *) -- 2.47.2