File libvirt-qemu-Un-mark-volume-as-mirrored-copied-if-blockjob-copy-fails.patch of Package libvirt
From f2871f7987dc060e28be5f6834ead86647557682 Mon Sep 17 00:00:00 2001
Message-Id: <f2871f7987dc060e28be5f6834ead86647557682@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Tue, 8 Apr 2014 11:45:53 +0200
Subject: [PATCH] qemu: Un-mark volume as mirrored/copied if blockjob copy
fails
https://bugzilla.redhat.com/show_bug.cgi?id=923125
When the blockjob fails for some reason an event is emitted but the disk
wasn't unmarked as being part of a active block copy operation.
(cherry picked from commit a584eaa5ff878608d55e5218fb43d066c02dff6b)
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
src/qemu/qemu_process.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 2731630..d1a9dca 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -1004,6 +1004,9 @@ qemuProcessHandleBlockJob(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
if (disk->mirror && type == VIR_DOMAIN_BLOCK_JOB_TYPE_COPY &&
status == VIR_DOMAIN_BLOCK_JOB_READY)
disk->mirroring = true;
+ if (disk->mirror && type == VIR_DOMAIN_BLOCK_JOB_TYPE_COPY &&
+ status == VIR_DOMAIN_BLOCK_JOB_FAILED)
+ VIR_FREE(disk->mirror);
}
virDomainObjUnlock(vm);
--
1.9.2