From d3833b0799dbe1f0b390cc1c0f18d8cdc7756d70 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 24 Jul 2019 17:22:05 +0200 Subject: [PATCH] qemu: blockjob: Clear out any irrelevant data in copied source Since we copy everything from the original storage source including some runtime data which are not relevant for the config we should clear them. Signed-off-by: Peter Krempa ACKed-by: Eric Blake --- src/qemu/qemu_blockjob.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c index d0805dbcc5..487ef24d5c 100644 --- a/src/qemu/qemu_blockjob.c +++ b/src/qemu/qemu_blockjob.c @@ -433,6 +433,25 @@ qemuBlockJobEmitEvents(virQEMUDriverPtr driver, virObjectEventStateQueue(driver->domainEventState, event2); } +/** + * qemuBlockJobCleanStorageSourceRuntime: + * @src: storage source to clean from runtime data + * + * Remove all runtime related data from the storage source. + */ +static void +qemuBlockJobCleanStorageSourceRuntime(virStorageSourcePtr src) +{ + src->id = 0; + src->detected = false; + VIR_FREE(src->relPath); + VIR_FREE(src->backingStoreRaw); + VIR_FREE(src->nodestorage); + VIR_FREE(src->nodeformat); + VIR_FREE(src->tlsAlias); + VIR_FREE(src->tlsCertdir); +} + /** * qemuBlockJobRewriteConfigDiskSource: @@ -467,6 +486,8 @@ qemuBlockJobRewriteConfigDiskSource(virDomainObjPtr vm, return; } + qemuBlockJobCleanStorageSourceRuntime(copy); + virObjectUnref(persistDisk->src); VIR_STEAL_PTR(persistDisk->src, copy); } -- 2.47.2