mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-23 21:15:20 +00:00
qemuPrepareNVRAM: Save domain conf only if domain's persistent
In one of my previous patches (3a3c3780b) I've tried to fix the problem of nvram path disappearing on a domain that's been started and shut down again. I fixed this by explicitly saving domain's config file. However, I did a bit of clumsy without realizing we have a transient domains for which we don't save the config file. Hence, any domain using UEFI became persistent. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> (cherry picked from commit 54ddc08ddb3d86e90b48b655a51577761e20ac34)
This commit is contained in:
parent
40f8708e9a
commit
c9ab47ad44
@ -3853,13 +3853,13 @@ qemuProcessVerifyGuestCPU(virQEMUDriverPtr driver,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
qemuPrepareNVRAM(virQEMUDriverConfigPtr cfg,
|
qemuPrepareNVRAM(virQEMUDriverConfigPtr cfg,
|
||||||
virDomainDefPtr def,
|
virDomainObjPtr vm,
|
||||||
bool migrated)
|
bool migrated)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
int srcFD = -1;
|
int srcFD = -1;
|
||||||
int dstFD = -1;
|
int dstFD = -1;
|
||||||
virDomainLoaderDefPtr loader = def->os.loader;
|
virDomainLoaderDefPtr loader = vm->def->os.loader;
|
||||||
bool generated = false;
|
bool generated = false;
|
||||||
bool created = false;
|
bool created = false;
|
||||||
|
|
||||||
@ -3886,12 +3886,13 @@ qemuPrepareNVRAM(virQEMUDriverConfigPtr cfg,
|
|||||||
if (!loader->nvram) {
|
if (!loader->nvram) {
|
||||||
if (virAsprintf(&loader->nvram,
|
if (virAsprintf(&loader->nvram,
|
||||||
"%s/lib/libvirt/qemu/nvram/%s_VARS.fd",
|
"%s/lib/libvirt/qemu/nvram/%s_VARS.fd",
|
||||||
LOCALSTATEDIR, def->name) < 0)
|
LOCALSTATEDIR, vm->def->name) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
generated = true;
|
generated = true;
|
||||||
|
|
||||||
if (virDomainSaveConfig(cfg->configDir, def) < 0)
|
if (vm->persistent &&
|
||||||
|
virDomainSaveConfig(cfg->configDir, vm->def) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4056,7 +4057,7 @@ int qemuProcessStart(virConnectPtr conn,
|
|||||||
* Fill them in prior to setting the domain def as transient. */
|
* Fill them in prior to setting the domain def as transient. */
|
||||||
VIR_DEBUG("Generating paths");
|
VIR_DEBUG("Generating paths");
|
||||||
|
|
||||||
if (qemuPrepareNVRAM(cfg, vm->def, migrateFrom) < 0)
|
if (qemuPrepareNVRAM(cfg, vm, migrateFrom) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
/* Do this upfront, so any part of the startup process can add
|
/* Do this upfront, so any part of the startup process can add
|
||||||
|
Loading…
x
Reference in New Issue
Block a user