]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuBlockStorageSourceNeedsStorageSliceLayer: Deal with 'luks' files
authorPeter Krempa <pkrempa@redhat.com>
Thu, 19 Mar 2020 15:54:52 +0000 (16:54 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 20 Mar 2020 08:47:16 +0000 (09:47 +0100)
The 'luks' driver in qemu is as any other non-raw format driver and thus
doesn't support the properties for 'slice'. Since libvirt considers
luks files to be raw+encryption we need to special case them when
dealing with the slice.

https://bugzilla.redhat.com/show_bug.cgi?id=1814975

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_block.c
tests/qemuxml2argvdata/disk-slices.x86_64-latest.args

index b5b34ab4419fe4f12d5b8a4d653b2bfec8799715..ee1516721544489fe6cfc672eb16391b99bf6922 100644 (file)
@@ -3324,5 +3324,9 @@ qemuBlockStorageSourceNeedsStorageSliceLayer(const virStorageSource *src)
     if (src->format != VIR_STORAGE_FILE_RAW)
         return true;
 
+    if (src->encryption &&
+        src->encryption->format == VIR_STORAGE_ENCRYPTION_FORMAT_LUKS)
+        return true;
+
     return false;
 }
index 75485c17a794cfa63efcafa5c9bedf6c82b5ca44..63bdaa58be18b9c56b758b7b467c5e562e5a4c87 100644 (file)
@@ -52,9 +52,12 @@ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
 -blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/luks.img",\
 "node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"driver":"raw","node-name":"libvirt-1-slice-sto","offset":1234,\
+"size":321,"file":"libvirt-1-storage","auto-read-only":true,\
+"discard":"unmap"}' \
 -blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"luks",\
 "key-secret":"libvirt-1-format-encryption-secret0","offset":1234,"size":321,\
-"file":"libvirt-1-storage"}' \
+"file":"libvirt-1-slice-sto"}' \
 -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-1-format,\
 id=virtio-disk2 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 \