From: "Daniel P. Berrange" <berrange(a)redhat.com>
Convert the QEMU driver code to use the new atomic API
for setup of cgroups
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/qemu/qemu_cgroup.c | 29 +++++++++++------------------
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
index 6455f50..bca8630 100644
--- a/src/qemu/qemu_cgroup.c
+++ b/src/qemu/qemu_cgroup.c
@@ -633,7 +633,6 @@ qemuInitCgroup(virQEMUDriverPtr driver,
{
int ret = -1;
qemuDomainObjPrivatePtr priv = vm->privateData;
- virCgroupPtr parent = NULL;
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
if (!cfg->privileged)
@@ -664,32 +663,26 @@ qemuInitCgroup(virQEMUDriverPtr driver,
vm->def->resource->partition);
goto cleanup;
}
- /* We only auto-create the default partition. In other
- * cases we expec the sysadmin/app to have done so */
- if (virCgroupNewPartition(vm->def->resource->partition,
- STREQ(vm->def->resource->partition,
"/machine"),
- cfg->cgroupControllers,
- &parent) < 0) {
+
+ if (virCgroupNewMachine(vm->def->name,
+ "qemu",
+ cfg->privileged,
+ vm->def->uuid,
+ NULL,
+ vm->pid,
+ false,
+ vm->def->resource->partition,
+ cfg->cgroupControllers,
+ &priv->cgroup) < 0) {
if (virCgroupNewIgnoreError())
goto done;
goto cleanup;
}
- if (virCgroupNewDomainPartition(parent,
- "qemu",
- vm->def->name,
- true,
- &priv->cgroup) < 0)
- goto cleanup;
-
- if (virCgroupAddTask(priv->cgroup, vm->pid) < 0)
- goto cleanup;
-
done:
ret = 0;
cleanup:
- virCgroupFree(&parent);
virObjectUnref(cfg);
return ret;
}
--
1.8.1.4