From: Peter Krempa Date: Tue, 16 Nov 2021 13:45:53 +0000 (+0100) Subject: qemuDomainPrepareStorageSourceBlockdev: Set default encryption engine also when prepa... X-Git-Tag: v7.10.0-rc1~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1e085019cadcafe87dd96975900c5798dfe46060;p=thirdparty%2Flibvirt.git qemuDomainPrepareStorageSourceBlockdev: Set default encryption engine also when preparing virStorageSource Originally the default encryption engine is populated in the disk post-parse callback code. This works for disks but for any additional images introduced either via the block copy API or via the backup API we don't populate the default. In case when the backup or block copy is requested on an encrypted image this would then lead to an error: error: internal error: Unexpected enum value 0 for virStorageEncryptionEngine This patch adds another point where we populate the default which is when setting up a virStorageSource for actual usage. We keep the original setting in the post-parse callback as that's the only point that is recorded in the XML file after definition. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2023674 Fixes: ab1d46d6128 Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e69215cee2..1f45b30975 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -10651,6 +10651,9 @@ qemuDomainPrepareStorageSourceBlockdev(virDomainDiskDef *disk, if (qemuBlockStorageSourceNeedsStorageSliceLayer(src)) src->sliceStorage->nodename = g_strdup_printf("libvirt-%u-slice-sto", src->id); + if (src->encryption && src->encryption->engine == VIR_STORAGE_ENCRYPTION_ENGINE_DEFAULT) + src->encryption->engine = VIR_STORAGE_ENCRYPTION_ENGINE_QEMU; + if (qemuDomainValidateStorageSource(src, priv->qemuCaps, false) < 0) return -1;