From 8c40ede4a4858889df2fa61d7f7cb23b7d41cd96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Fri, 27 May 2016 14:00:34 +0200 Subject: [PATCH] Do not check for domain liveness in virDomainObjSetDefTransient 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 ee25e01f9e..11ec80dcf4 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 b1953b3143..c182747b66 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 8a3866f90f..9fe8be04ee 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 058c3e1e7e..07eb22af02 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 e847cd1f13..7a4a2caeb4 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 a51eb09993..fb40e87c62 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 d68054e0aa..a674c1203e 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; }