]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: migrate: Save MigratePerform error in MigrateFinish.
authorCole Robinson <crobinso@redhat.com>
Sat, 9 Jan 2010 01:55:14 +0000 (20:55 -0500)
committerCole Robinson <crobinso@redhat.com>
Tue, 12 Jan 2010 15:48:34 +0000 (10:48 -0500)
This way we won't squash the original error report in
MigratePerform, as is done for P2P and Tunneled migration.

src/qemu/qemu_driver.c

index 881756568885085997a031ec85ab2520955bd5f0..02f612fffaa6c07b7fbaf04facd3025ca616210b 100644 (file)
@@ -7676,8 +7676,12 @@ qemudDomainMigrateFinish2 (virConnectPtr dconn,
     virDomainObjPtr vm;
     virDomainPtr dom = NULL;
     virDomainEventPtr event = NULL;
+    virErrorPtr orig_err;
     int newVM = 1;
 
+    /* Migration failed. Save the current error so nothing squashes it */
+    orig_err = virSaveLastError();
+
     qemuDriverLock(driver);
     vm = virDomainFindByName(&driver->domains, dname);
     if (!vm) {
@@ -7771,6 +7775,10 @@ endjob:
         vm = NULL;
 
 cleanup:
+    if (orig_err) {
+        virSetError(orig_err);
+        virFreeError(orig_err);
+    }
     if (vm)
         virDomainObjUnlock(vm);
     if (event)