From: Ivana Hutarova Varekova Date: Tue, 30 Jul 2013 07:57:07 +0000 (+0200) Subject: create_cgroup_from_name_value_pairs can't deal n/v pairs from the same controller X-Git-Tag: v0.41~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=10da4df3b25174e52e8a8004ff126130ec9b8d52;p=thirdparty%2Flibcgroup.git create_cgroup_from_name_value_pairs can't deal n/v pairs from the same controller create_cgroup_from_name_value_pairs can't deal name/value pairs from the same controller E.G. cgset -r cpu.cfs_quota_us=400000 -r cpu.cfs_period_us=400000 cgroup This patch fix the problem. Signed-off-by: Ivana Hutarova Varekova Acked-by: Jan Safranek --- diff --git a/src/wrapper.c b/src/wrapper.c index dfcfc8f4..c03472aa 100644 --- a/src/wrapper.c +++ b/src/wrapper.c @@ -556,12 +556,17 @@ struct cgroup *create_cgroup_from_name_value_pairs(const char *name, strncpy(con, name_value[i].name, FILENAME_MAX); strtok(con, "."); - /* add relevant controller */ - cgc = cgroup_add_controller(src_cgroup, con); + /* find out whether we have to add the controller or + cgroup already contains it */ + cgc = cgroup_get_controller(src_cgroup, con); if (!cgc) { - fprintf(stderr, "controller %s can't be add\n", - con); - goto scgroup_err; + /* add relevant controller */ + cgc = cgroup_add_controller(src_cgroup, con); + if (!cgc) { + fprintf(stderr, "controller %s can't be add\n", + con); + goto scgroup_err; + } } /* add name-value pair to this controller */