[libvirt] [PATCH v2] qemu: Error prompt when saving a shutoff domain

Osier Yang jyang at redhat.com
Wed Feb 16 10:06:57 UTC 2011


"qemudDomainSaveFlag" goto wrong label "endjob", which will cause
error when security manager trying to restore label (regression).

As it's more reasonable to check if vm is shutoff immediately, and
return right away if it is, remove the checking in "qemudDomainSaveFlag",
and add checking in "qemudDomainSave".

* src/qemu/qemu_driver.c
---
 src/qemu/qemu_driver.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 82a2210..5f2fcaa 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -4332,12 +4332,6 @@ static int qemudDomainSaveFlag(struct qemud_driver *driver, virDomainPtr dom,
     if (qemuDomainObjBeginJobWithDriver(driver, vm) < 0)
         goto cleanup;

-    if (!virDomainObjIsActive(vm)) {
-        qemuReportError(VIR_ERR_OPERATION_INVALID,
-                        "%s", _("domain is not running"));
-        goto endjob;
-    }
-
     priv->jobActive = QEMU_JOB_SAVE;

     memset(&priv->jobInfo, 0, sizeof(priv->jobInfo));
@@ -4656,6 +4650,12 @@ static int qemudDomainSave(virDomainPtr dom, const char *path)
         goto cleanup;
     }

+    if (!virDomainObjIsActive(vm)) {
+        qemuReportError(VIR_ERR_OPERATION_INVALID,
+                        "%s", _("domain is not running"));
+        goto cleanup;
+    }
+
     ret = qemudDomainSaveFlag(driver, dom, vm, path, compressed);

 cleanup:
--
1.7.4




More information about the libvir-list mailing list