return rc;
}
-static int virCgroupMakeGroup(virCgroupPtr parent, virCgroupPtr group)
+static int virCgroupMakeGroup(virCgroupPtr parent, virCgroupPtr group, int create)
{
int i;
int rc = 0;
VIR_DEBUG("Make controller %s", path);
if (access(path, F_OK) != 0) {
- if (mkdir(path, 0755) < 0) {
+ if (!create ||
+ mkdir(path, 0755) < 0) {
rc = -errno;
VIR_FREE(path);
break;
if (rc != 0)
goto cleanup;
- rc = virCgroupMakeGroup(rootgrp, *group);
+ rc = virCgroupMakeGroup(rootgrp, *group, 1);
cleanup:
virCgroupFree(&rootgrp);
rc = virCgroupNew(path, group);
VIR_FREE(path);
- if (rc == 0 &&
- create) {
- rc = virCgroupMakeGroup(rootgrp, *group);
+ if (rc == 0) {
+ rc = virCgroupMakeGroup(rootgrp, *group, create);
if (rc != 0)
virCgroupFree(group);
}
rc = virCgroupNew(path, group);
VIR_FREE(path);
- if (rc == 0 &&
- create) {
- rc = virCgroupMakeGroup(driver, *group);
+ if (rc == 0) {
+ rc = virCgroupMakeGroup(driver, *group, create);
if (rc != 0)
virCgroupFree(group);
}