[libvirt] [RFC PATCH 04/30] qemu: domain: Carefuly transfer configuration from disk to storage source

Peter Krempa pkrempa at redhat.com
Thu Apr 19 15:25:01 UTC 2018


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-s

Zero detection is applied only for the top layer image, while caching
and iomode for all layers.

Signed-off-by: Peter Krempa <pkrempa at 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 224b3b0478..288bdb86ad 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -11833,6 +11833,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 &&
@@ -11843,6 +11846,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;
-- 
2.14.3




More information about the libvir-list mailing list