|
|
9119d9 |
From 34202c841fb328d20be3ea0618996940e187f3f9 Mon Sep 17 00:00:00 2001
|
|
|
9119d9 |
Message-Id: <34202c841fb328d20be3ea0618996940e187f3f9@dist-git>
|
|
|
9119d9 |
From: Shanzhi Yu <shyu@redhat.com>
|
|
|
9119d9 |
Date: Wed, 22 Oct 2014 09:54:36 +0200
|
|
|
9119d9 |
Subject: [PATCH] qemu: save domain status after set the blkio parameters
|
|
|
9119d9 |
|
|
|
9119d9 |
After set the blkio parameters for running domain, save the change into
|
|
|
9119d9 |
live xml is needed to survive restarting the libvirtd, same story with
|
|
|
9119d9 |
bug 1146511, meanwhile add call qemuDomainObjBeginJob/qemuDomainObjEndJob
|
|
|
9119d9 |
in qemuDomainSetBlkioParameters
|
|
|
9119d9 |
|
|
|
9119d9 |
Signed-off-by: Shanzhi Yu <shyu@redhat.com>
|
|
|
9119d9 |
(cherry picked from commit bde879c1847f8181ca144c0807ae83906de8440d)
|
|
|
9119d9 |
|
|
|
9119d9 |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1146511
|
|
|
9119d9 |
|
|
|
9119d9 |
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
|
|
|
9119d9 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
9119d9 |
---
|
|
|
9119d9 |
src/qemu/qemu_driver.c | 16 +++++++++++++---
|
|
|
9119d9 |
1 file changed, 13 insertions(+), 3 deletions(-)
|
|
|
9119d9 |
|
|
|
9119d9 |
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
|
|
|
9119d9 |
index 36b394e..12a32ec 100644
|
|
|
9119d9 |
--- a/src/qemu/qemu_driver.c
|
|
|
9119d9 |
+++ b/src/qemu/qemu_driver.c
|
|
|
9119d9 |
@@ -7993,15 +7993,18 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
|
|
|
9119d9 |
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
|
|
|
9119d9 |
goto cleanup;
|
|
|
9119d9 |
|
|
|
9119d9 |
+ if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
|
|
|
9119d9 |
+ goto cleanup;
|
|
|
9119d9 |
+
|
|
|
9119d9 |
if (virDomainLiveConfigHelperMethod(caps, driver->xmlopt, vm, &flags,
|
|
|
9119d9 |
&persistentDef) < 0)
|
|
|
9119d9 |
- goto cleanup;
|
|
|
9119d9 |
+ goto endjob;
|
|
|
9119d9 |
|
|
|
9119d9 |
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
|
|
|
9119d9 |
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_BLKIO)) {
|
|
|
9119d9 |
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
|
|
|
9119d9 |
_("blkio cgroup isn't mounted"));
|
|
|
9119d9 |
- goto cleanup;
|
|
|
9119d9 |
+ goto endjob;
|
|
|
9119d9 |
}
|
|
|
9119d9 |
}
|
|
|
9119d9 |
|
|
|
9119d9 |
@@ -8094,9 +8097,12 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
|
|
|
9119d9 |
VIR_FREE(devices);
|
|
|
9119d9 |
}
|
|
|
9119d9 |
}
|
|
|
9119d9 |
+
|
|
|
9119d9 |
+ if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm) < 0)
|
|
|
9119d9 |
+ goto endjob;
|
|
|
9119d9 |
}
|
|
|
9119d9 |
if (ret < 0)
|
|
|
9119d9 |
- goto cleanup;
|
|
|
9119d9 |
+ goto endjob;
|
|
|
9119d9 |
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
|
|
|
9119d9 |
/* Clang can't see that if we get here, persistentDef was set. */
|
|
|
9119d9 |
sa_assert(persistentDef);
|
|
|
9119d9 |
@@ -8134,6 +8140,10 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
|
|
|
9119d9 |
ret = -1;
|
|
|
9119d9 |
}
|
|
|
9119d9 |
|
|
|
9119d9 |
+ endjob:
|
|
|
9119d9 |
+ if (!qemuDomainObjEndJob(driver, vm))
|
|
|
9119d9 |
+ vm = NULL;
|
|
|
9119d9 |
+
|
|
|
9119d9 |
cleanup:
|
|
|
9119d9 |
if (vm)
|
|
|
9119d9 |
virObjectUnlock(vm);
|
|
|
9119d9 |
--
|
|
|
9119d9 |
2.1.3
|
|
|
9119d9 |
|