From 1e085019cadcafe87dd96975900c5798dfe46060 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 16 Nov 2021 14:45:53 +0100 Subject: [PATCH] qemuDomainPrepareStorageSourceBlockdev: Set default encryption engine also when preparing virStorageSource MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- src/qemu/qemu_domain.c | 3 +++ 1 file changed, 3 insertions(+) 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;