From 8a78f88a1a689f5bb4b8303c5a8c284e22ad46a1 Mon Sep 17 00:00:00 2001 From: Peter Krempa <pkrempa@redhat.com> Date: Fri, 23 Mar 2018 17:00:29 +0100 Subject: [PATCH] qemu: domain: Carefuly transfer configuration from disk to storage source Some properties don't make sense to be configured for every single layer of the backing chain, but to avoid needing to pass the disk structure we will copy them to the individual virStorageSource. Zero detection is applied only for the top layer image, while caching and iomode for all layers. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: John Ferlan <jferlan@redhat.com> --- src/qemu/qemu_domain.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 0648703fd9..48628466de 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11834,6 +11834,9 @@ qemuDomainPrepareDiskSourceChain(virDomainDiskDefPtr disk, if (!src) src = disk->src; + /* transfer properties valid only for the top level image */ + src->detect_zeroes = disk->detect_zeroes; + for (n = src; virStorageSourceIsBacking(n); n = n->backingStore) { if (n->type == VIR_STORAGE_TYPE_NETWORK && n->protocol == VIR_STORAGE_NET_PROTOCOL_GLUSTER && @@ -11844,6 +11847,11 @@ qemuDomainPrepareDiskSourceChain(virDomainDiskDefPtr disk, if (qemuDomainValidateStorageSource(n, qemuCaps) < 0) return -1; + + /* transfer properties valid for the full chain */ + n->iomode = disk->iomode; + n->cachemode = disk->cachemode; + n->discard = disk->discard; } return 0;