it is a bug when the vm is undefined after started.
blockcommit interface also has the bug with above.
Signed-off-by: Bobo Du <dubobo(a)didichuxing.com
---
src/qemu/qemu_blockjob.c | 2 +-
src/qemu/qemu_driver.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c
index 0f52996..90af797 100644
--- a/src/qemu/qemu_blockjob.c
+++ b/src/qemu/qemu_blockjob.c
@@ -204,7 +204,7 @@ qemuBlockJobEventProcess(virQEMUDriverPtr driver,
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps)
< 0)
VIR_WARN("Unable to save status on vm %s after block job",
vm->def->name);
- if (status == VIR_DOMAIN_BLOCK_JOB_COMPLETED && vm->newDef) {
+ if (status == VIR_DOMAIN_BLOCK_JOB_COMPLETED && vm->newDef &&
vm->persistent) {
if (virDomainSaveConfig(cfg->configDir, driver->caps, vm->newDef) <
0)
VIR_WARN("Unable to update persistent definition on vm %s "
"after block job", vm->def->name);
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index fb0d4a8..202c1ba 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15055,7 +15055,8 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
if (ret == 0 || !do_transaction) {
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps)
< 0 ||
- (persist && virDomainSaveConfig(cfg->configDir, driver->caps,
+ (vm->persistent && persist &&
virDomainSaveConfig(cfg->configDir,
+ driver->caps,
vm->newDef) < 0))
ret = -1;
}
--
1.8.3.1