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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list