On 10/02/2018 10:43 AM, Pavel Hrdina wrote:
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
src/util/vircgroupv2.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/util/vircgroupv2.c b/src/util/vircgroupv2.c
index 11d9876d36..eaf07397d5 100644
--- a/src/util/vircgroupv2.c
+++ b/src/util/vircgroupv2.c
@@ -167,6 +167,21 @@ virCgroupV2CopyPlacement(virCgroupPtr group,
}
+static int
+virCgroupV2DetectMounts(virCgroupPtr group,
+ const char *mntType,
+ const char *mntOpts ATTRIBUTE_UNUSED,
+ const char *mntDir)
+{
+ if (STRNEQ(mntType, "cgroup2"))
+ return 0;
+
+ VIR_FREE(group->unified.mountPoint);
+
+ return VIR_STRDUP(group->unified.mountPoint, mntDir);
Looking at virCgroupDetectMounts() maybe we could have a new return
value to stop going through mount table once we've found what we were
looking for? E.g. -1 = an error, 0 not found but continue, 1 found and
break the loop.
Because the way this is written now - this will always pick up the last
cgroup2 mount. I don't think that is a problem right now. Also, probably
if you have more than one mount of cgroup2 then you're in a bigger
trouble anyway. If you decide to work my suggestion in, then it can be
saved as a follow up patch.
+}
+
+
virCgroupBackend virCgroupV2Backend = {
.type = VIR_CGROUP_BACKEND_TYPE_V2,
@@ -174,6 +189,7 @@ virCgroupBackend virCgroupV2Backend = {
.validateMachineGroup = virCgroupV2ValidateMachineGroup,
.copyMounts = virCgroupV2CopyMounts,
.copyPlacement = virCgroupV2CopyPlacement,
+ .detectMounts = virCgroupV2DetectMounts,
};
ACK
Michal