summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJán Tomko <jtomko@redhat.com>2013-07-01 12:41:34 +0200
committerJán Tomko <jtomko@redhat.com>2013-07-11 15:45:17 +0200
commitd145c8300ff72418bebb2bf12e698e190d22973e (patch)
tree87cc7d3d7b110b780de9dd8c1b8a895602e54a5d
parentfbd23fbcbf1012a1d0636f6aa50de04bb671e6c6 (diff)
downloadlibvirt-d145c8300ff72418bebb2bf12e698e190d22973e.tar.gz
qemu: fix return value of qemuDomainBlockPivot on errors
If qemuMonitorBlockJob returned 0, qemuDomainBlockPivot might return 0 even if an error occured. https://bugzilla.redhat.com/show_bug.cgi?id=977678 (cherry picked from commit c34107dfd3a25232255e6d6f559b1306ef99bb3b)
-rw-r--r--src/qemu/qemu_driver.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index a9482ee55e..21784c5cdf 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -13055,7 +13055,7 @@ qemuDomainBlockPivot(virConnectPtr conn,
virQEMUDriverPtr driver, virDomainObjPtr vm,
const char *device, virDomainDiskDefPtr disk)
{
- int ret = -1;
+ int ret = -1, rc;
qemuDomainObjPrivatePtr priv = vm->privateData;
virDomainBlockJobInfo info;
const char *format = virStorageFileFormatTypeToString(disk->mirrorFormat);
@@ -13069,17 +13069,17 @@ qemuDomainBlockPivot(virConnectPtr conn,
/* Probe the status, if needed. */
if (!disk->mirroring) {
qemuDomainObjEnterMonitor(driver, vm);
- ret = qemuMonitorBlockJob(priv->mon, device, NULL, 0, &info,
+ rc = qemuMonitorBlockJob(priv->mon, device, NULL, 0, &info,
BLOCK_JOB_INFO, true);
qemuDomainObjExitMonitor(driver, vm);
- if (ret < 0)
+ if (rc < 0)
goto cleanup;
if (!virDomainObjIsActive(vm)) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("domain is not running"));
goto cleanup;
}
- if (ret == 1 && info.cur == info.end &&
+ if (rc == 1 && info.cur == info.end &&
info.type == VIR_DOMAIN_BLOCK_JOB_TYPE_COPY)
disk->mirroring = true;
}