summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--service/instance.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/service/instance.c b/service/instance.c
index c559cda..a456b8c 100644
--- a/service/instance.c
+++ b/service/instance.c
@@ -30,6 +30,7 @@
#include <syslog.h>
#include <libubox/md5.h>
+#include <libubox/utils.h>
#include "../procd.h"
#include "../rcS.h"
@@ -570,22 +571,12 @@ instance_add_cgroup(const char *service, const char *instance)
if (stat("/sys/fs/cgroup/cgroup.subtree_control", &sb))
return -ENOENT;
- mkdir(CGROUP_BASEDIR, 0700);
-
- ret = snprintf(cgnamebuf, sizeof(cgnamebuf), "%s/%s", CGROUP_BASEDIR,
- service);
- if (ret >= sizeof(cgnamebuf))
- return -ENAMETOOLONG;
-
- if (mkdir(cgnamebuf, 0700))
- return -EPERM;
-
ret = snprintf(cgnamebuf, sizeof(cgnamebuf), "%s/%s/%s", CGROUP_BASEDIR,
service, instance);
if (ret >= sizeof(cgnamebuf))
return -ENAMETOOLONG;
- if (mkdir(cgnamebuf, 0700))
+ if (mkdir_p(cgnamebuf, 0700))
return -EPERM;
if (strlen(cgnamebuf) + strlen(cgroup_procs) >= sizeof(cgnamebuf))