]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: domain: Carefuly transfer configuration from disk to storage source
authorPeter Krempa <pkrempa@redhat.com>
Fri, 23 Mar 2018 16:00:29 +0000 (17:00 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 7 May 2018 12:49:21 +0000 (14:49 +0200)
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

index 0648703fd9b9b64e92a596d3591ce433888e64a1..48628466de42a7c3bf5b71a784a5dd53f6fd0fce 100644 (file)
@@ -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;