summary refs log tree commit diff
path: root/gnu/packages/patches/libvirt-create-machine-cgroup.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/libvirt-create-machine-cgroup.patch')
-rw-r--r--gnu/packages/patches/libvirt-create-machine-cgroup.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/packages/patches/libvirt-create-machine-cgroup.patch b/gnu/packages/patches/libvirt-create-machine-cgroup.patch
new file mode 100644
index 0000000000..585ac237e1
--- /dev/null
+++ b/gnu/packages/patches/libvirt-create-machine-cgroup.patch
@@ -0,0 +1,48 @@
+From 9ca0b2955edea162b255b428e493cd8ffac52167 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
+ <rosen644835@gmail.com>
+Date: Fri, 1 Nov 2019 17:29:00 +0100
+Subject: [PATCH] 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
+---
+ src/util/vircgroup.c | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
+index b46f20abfd..33c61f2d45 100644
+--- a/src/util/vircgroup.c
++++ b/src/util/vircgroup.c
+@@ -855,9 +855,6 @@ virCgroupNewPartition(const char *path,
+     if (virCgroupSetPartitionSuffix(path, &newPath) < 0)
+         goto cleanup;
+ 
+-    if (virCgroupNew(-1, newPath, NULL, controllers, group) < 0)
+-        goto cleanup;
+-
+     if (STRNEQ(newPath, "/")) {
+         char *tmp;
+         parentPath = g_strdup(newPath);
+@@ -868,7 +865,12 @@ virCgroupNewPartition(const char *path,
+ 
+         if (virCgroupNew(-1, parentPath, NULL, controllers, &parent) < 0)
+             goto cleanup;
++    }
+ 
++    if (virCgroupNew(-1, newPath, parent, controllers, group) < 0)
++        goto cleanup;
++
++    if (parent) {
+         if (virCgroupMakeGroup(parent, *group, create, VIR_CGROUP_NONE) < 0)
+             goto cleanup;
+     }
+-- 
+2.23.0
+