cgroup: Skip mkdir() and subtree control if group already exists
- No point in doing it twice
- Don't anger the gods (possible kernel bugs)
@@ -86,7 +86,8 @@ static void group_init(char *path, int leaf, const char *cfg)
{
char *ptr, *s;
- if (mkdir(path, 0755) && EEXIST != errno) {
+ if (!fisdir(path)) {
+ if (mkdir(path, 0755)) {
_pe("Failed creating cgroup %s", path);
return;
}
@@ -94,8 +95,9 @@ static void group_init(char *path, int leaf, const char *cfg)
/* enable detected controllers on domain groups */
if (!leaf && fnwrite(controllers, "%s/cgroup.subtree_control", path))
_pe("Failed enabling %s for %s", controllers, path);
+ }
- if (!cfg)
+ if (!cfg || !cfg[0])
return;
s = strdupa(cfg);
