vircgroup: Ensure /machine group is associated with its parent

Call first virCgroupNew on the parent group virCgroupNewPartition if
it is available on before the creation of the child group.  This
ensures that the creation of a first level group on the unified
architecture, as the check at virCgroupV2ParseControllersFile as the
parent file is there.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1760233

Signed-off-by: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Miguel Ángel Arruga Vivas 2019-11-04 15:55:23 +01:00 committed by Michal Privoznik
parent ddcb33bdc0
commit a74df786a2

View File

@ -847,9 +847,6 @@ virCgroupNewPartition(const char *path,
if (virCgroupSetPartitionSuffix(path, &newPath) < 0) if (virCgroupSetPartitionSuffix(path, &newPath) < 0)
goto cleanup; goto cleanup;
if (virCgroupNew(-1, newPath, NULL, controllers, group) < 0)
goto cleanup;
if (STRNEQ(newPath, "/")) { if (STRNEQ(newPath, "/")) {
char *tmp; char *tmp;
parentPath = g_strdup(newPath); parentPath = g_strdup(newPath);
@ -860,7 +857,12 @@ virCgroupNewPartition(const char *path,
if (virCgroupNew(-1, parentPath, NULL, controllers, &parent) < 0) if (virCgroupNew(-1, parentPath, NULL, controllers, &parent) < 0)
goto cleanup; goto cleanup;
}
if (virCgroupNew(-1, newPath, parent, controllers, group) < 0)
goto cleanup;
if (parent) {
if (virCgroupMakeGroup(parent, *group, create, VIR_CGROUP_NONE) < 0) if (virCgroupMakeGroup(parent, *group, create, VIR_CGROUP_NONE) < 0)
goto cleanup; goto cleanup;
} }