From 01d59fe5b3dd419a9fcf004e89cb8eaf76c5fd14 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Sat, 27 Feb 2016 17:00:45 +0100 Subject: [PATCH] cgfs: don't chown/chmod/rm non-existing paths Dirty fix for the current noisiness when lxc_cgroupfs_create() could not create cgroups. Signed-off-by: Christian Brauner --- src/lxc/cgfs.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lxc/cgfs.c b/src/lxc/cgfs.c index 16c80ebe3..071060b57 100644 --- a/src/lxc/cgfs.c +++ b/src/lxc/cgfs.c @@ -1811,6 +1811,8 @@ static int create_or_remove_cgroup(bool do_remove, /* create or remove directory */ if (do_remove) { + if (!dir_exists(buf)) + return 0; if (recurse) r = cgroup_rmdir(buf); else @@ -2518,7 +2520,6 @@ static int chown_cgroup_wrapper(void *data) uid_t destuid; char *fpath; - if (setresgid(0,0,0) < 0) SYSERROR("Failed to setgid to 0"); if (setresuid(0,0,0) < 0) @@ -2536,6 +2537,7 @@ static int chown_cgroup_wrapper(void *data) if (chown(fpath, destuid, 0) < 0) SYSERROR("Error chowning %s\n", fpath); free(fpath); + fpath = lxc_append_paths(arg->cgroup_path, "cgroup.procs"); if (!fpath) return -1; @@ -2551,6 +2553,9 @@ static bool do_cgfs_chown(char *cgroup_path, struct lxc_conf *conf) struct chown_data data; char *fpath; + if (!dir_exists(cgroup_path)) + return true; + if (lxc_list_empty(&conf->id_map)) /* If there's no mapping then we don't need to chown */ return true; -- 2.47.2