Blame SOURCES/libvirt-qemu-block-commit-Don-t-overwrite-error-when-rolling-back-disk-labels.patch

452bec
From 8fc980241464db978fad2e86bc3d6916a173cbe9 Mon Sep 17 00:00:00 2001
452bec
Message-Id: <8fc980241464db978fad2e86bc3d6916a173cbe9@dist-git>
452bec
From: Peter Krempa <pkrempa@redhat.com>
452bec
Date: Wed, 22 Nov 2017 18:20:48 +0100
452bec
Subject: [PATCH] qemu: block commit: Don't overwrite error when rolling back
452bec
 disk labels
452bec
452bec
Calls to qemuDomainDiskChainElementPrepare resets the original error,
452bec
thus we need to save it in the cleanup path of qemuDomainBlockCommit.
452bec
452bec
(cherry picked from commit c885b7fe1de1961391a117c033b4012a02cc8fca)
452bec
452bec
https://bugzilla.redhat.com/show_bug.cgi?id=1516717
452bec
452bec
Helps resolve merge conflicts with the actual patch and is useful by
452bec
itself.
452bec
452bec
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
452bec
---
452bec
 src/qemu/qemu_driver.c | 6 ++++++
452bec
 1 file changed, 6 insertions(+)
452bec
452bec
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
452bec
index bfd7ff6c09..46016fb36e 100644
452bec
--- a/src/qemu/qemu_driver.c
452bec
+++ b/src/qemu/qemu_driver.c
452bec
@@ -17302,10 +17302,16 @@ qemuDomainBlockCommit(virDomainPtr dom,
452bec
 
452bec
  endjob:
452bec
     if (ret < 0 && clean_access) {
452bec
+        virErrorPtr orig_err = virSaveLastError();
452bec
         /* Revert access to read-only, if possible.  */
452bec
         qemuDomainDiskChainElementPrepare(driver, vm, baseSource, true);
452bec
         if (top_parent && top_parent != disk->src)
452bec
             qemuDomainDiskChainElementPrepare(driver, vm, top_parent, true);
452bec
+
452bec
+        if (orig_err) {
452bec
+            virSetError(orig_err);
452bec
+            virFreeError(orig_err);
452bec
+        }
452bec
     }
452bec
     virStorageSourceFree(mirror);
452bec
     qemuDomainObjEndJob(driver, vm);
452bec
-- 
452bec
2.15.1
452bec