From: Peter Krempa Date: Thu, 16 Dec 2021 17:35:34 +0000 (+0100) Subject: qemuBlockStorageSourceCreateDetectSize: Propagate 'extended_l2' feature to new overlays X-Git-Tag: v8.0.0-rc1~103 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4273b74b82003c729babe62792c8e71ab57b62ce;p=thirdparty%2Flibvirt.git qemuBlockStorageSourceCreateDetectSize: Propagate 'extended_l2' feature to new overlays In cases where the qcow2 image is using subclusters/extended_l2 entries we should propagate them to the new images which are based on such images. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index bff93e96ee..2e606e99b4 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -2941,11 +2941,18 @@ qemuBlockStorageSourceCreateDetectSize(GHashTable *blockNamedNodeData, return -1; } - /* propagate cluster size if the images are compatible */ + /* propagate properties of qcow2 images if possible*/ if (templ->format == VIR_STORAGE_FILE_QCOW2 && - src->format == VIR_STORAGE_FILE_QCOW2 && - src->clusterSize == 0) - src->clusterSize = entry->clusterSize; + src->format == VIR_STORAGE_FILE_QCOW2) { + if (src->clusterSize == 0) + src->clusterSize = entry->clusterSize; + + if (entry->qcow2extendedL2) { + if (!src->features) + src->features = virBitmapNew(VIR_STORAGE_FILE_FEATURE_LAST); + ignore_value(virBitmapSetBit(src->features, VIR_STORAGE_FILE_FEATURE_EXTENDED_L2)); + } + } if (src->format == VIR_STORAGE_FILE_RAW) { src->physical = entry->capacity;