[libvirt] [PATCH 3/3] Do not check for domain liveness in virDomainObjSetDefTransient

Ján Tomko jtomko at redhat.com
Fri May 27 15:45:15 UTC 2016


Remove the live attribute and mark the definition as transient
whether the domain is runing or not.

There were only two callers left calling with live=false:
* testDomainStartState, where the domain already is active
  because we assigned vm->def->id just a few lines above the call
* virDomainObjGetPersistentDef, which now only calls
  virDomainObjSetDefTransient for an active domain
---
 src/conf/domain_conf.c   | 14 +++-----------
 src/conf/domain_conf.h   |  3 +--
 src/libxl/libxl_domain.c |  3 +--
 src/lxc/lxc_process.c    |  2 +-
 src/qemu/qemu_process.c  |  4 ++--
 src/test/test_driver.c   |  2 +-
 src/uml/uml_driver.c     |  3 +--
 7 files changed, 10 insertions(+), 21 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index baa51fd..48cfb7b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2885,29 +2885,21 @@ virDomainObjWaitUntil(virDomainObjPtr vm,
 
 
 /*
- * Mark the running VM config as transient. Ensures transient hotplug
+ * Mark the current VM config as transient. Ensures transient hotplug
  * operations do not persist past shutdown.
  *
  * @param caps pointer to capabilities info
  * @param xmlopt pointer to XML parser configuration object
  * @param domain domain object pointer
- * @param live if true, run this operation even for an inactive domain.
- *   this allows freely updated domain->def with runtime defaults before
- *   starting the VM, which will be discarded on VM shutdown. Any cleanup
- *   paths need to be sure to handle newDef if the domain is never started.
  * @return 0 on success, -1 on failure
  */
 int
 virDomainObjSetDefTransient(virCapsPtr caps,
                             virDomainXMLOptionPtr xmlopt,
-                            virDomainObjPtr domain,
-                            bool live)
+                            virDomainObjPtr domain)
 {
     int ret = -1;
 
-    if (!virDomainObjIsActive(domain) && !live)
-        return 0;
-
     if (!domain->persistent)
         return 0;
 
@@ -2937,7 +2929,7 @@ virDomainObjGetPersistentDef(virCapsPtr caps,
                              virDomainObjPtr domain)
 {
     if (virDomainObjIsActive(domain) &&
-        virDomainObjSetDefTransient(caps, xmlopt, domain, false) < 0)
+        virDomainObjSetDefTransient(caps, xmlopt, domain) < 0)
         return NULL;
 
     if (domain->newDef)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index b1953b3..c182747 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -2525,8 +2525,7 @@ void virDomainObjAssignDef(virDomainObjPtr domain,
                            virDomainDefPtr *oldDef);
 int virDomainObjSetDefTransient(virCapsPtr caps,
                                 virDomainXMLOptionPtr xmlopt,
-                                virDomainObjPtr domain,
-                                bool live);
+                                virDomainObjPtr domain);
 virDomainDefPtr
 virDomainObjGetPersistentDef(virCapsPtr caps,
                              virDomainXMLOptionPtr xmlopt,
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index 8a3866f..9fe8be0 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -1096,8 +1096,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
         VIR_FREE(managed_save_path);
     }
 
-    if (virDomainObjSetDefTransient(cfg->caps, driver->xmlopt,
-                                    vm, true) < 0)
+    if (virDomainObjSetDefTransient(cfg->caps, driver->xmlopt, vm) < 0)
         goto cleanup;
 
     if (virDomainLockProcessStart(driver->lockManager,
diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
index 058c3e1..07eb22a 100644
--- a/src/lxc/lxc_process.c
+++ b/src/lxc/lxc_process.c
@@ -1286,7 +1286,7 @@ int virLXCProcessStart(virConnectPtr conn,
      * report implicit runtime defaults in the XML, like vnc listen/socket
      */
     VIR_DEBUG("Setting current domain def as transient");
-    if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm, true) < 0)
+    if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm) < 0)
         goto cleanup;
 
     /* Run an early hook to set-up missing devices */
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index e847cd1..7a4a2ca 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4447,7 +4447,7 @@ qemuProcessInit(virQEMUDriverPtr driver,
      * report implicit runtime defaults in the XML, like vnc listen/socket
      */
     VIR_DEBUG("Setting current domain def as transient");
-    if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm, true) < 0)
+    if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm) < 0)
         goto stop;
 
     if (!(flags & VIR_QEMU_PROCESS_START_PRETEND)) {
@@ -5944,7 +5944,7 @@ int qemuProcessAttach(virConnectPtr conn ATTRIBUTE_UNUSED,
      * report implicit runtime defaults in the XML, like vnc listen/socket
      */
     VIR_DEBUG("Setting current domain def as transient");
-    if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm, true) < 0)
+    if (virDomainObjSetDefTransient(caps, driver->xmlopt, vm) < 0)
         goto error;
 
     vm->def->id = qemuDriverAllocateID(driver);
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index a51eb09..fb40e87 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -601,7 +601,7 @@ testDomainStartState(testDriverPtr privconn,
 
     if (virDomainObjSetDefTransient(privconn->caps,
                                     privconn->xmlopt,
-                                    dom, false) < 0) {
+                                    dom) < 0) {
         goto cleanup;
     }
 
diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c
index d68054e..a674c12 100644
--- a/src/uml/uml_driver.c
+++ b/src/uml/uml_driver.c
@@ -1099,8 +1099,7 @@ static int umlStartVMDaemon(virConnectPtr conn,
      * report implicit runtime defaults in the XML, like vnc listen/socket
      */
     VIR_DEBUG("Setting current domain def as transient");
-    if (virDomainObjSetDefTransient(driver->caps, driver->xmlopt,
-                                    vm, true) < 0) {
+    if (virDomainObjSetDefTransient(driver->caps, driver->xmlopt, vm) < 0) {
         VIR_FORCE_CLOSE(logfd);
         return -1;
     }
-- 
2.7.3




More information about the libvir-list mailing list