]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: block: Explicitly specify backingStore when creating format layer props
authorPeter Krempa <pkrempa@redhat.com>
Tue, 3 Sep 2019 11:27:52 +0000 (13:27 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 6 Sep 2019 06:12:21 +0000 (08:12 +0200)
Pass in backing store explicitly to qemuBlockStorageSourceGetBlockdevProps
and fix the callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_block.c
src/qemu/qemu_block.h
tests/qemublocktest.c

index 54b829efeddadab4bfbaa7a8e0474071b6dc804e..fb631276c9d22fcf61032c5393cbde8514363abc 100644 (file)
@@ -1396,15 +1396,16 @@ qemuBlockStorageSourceGetBlockdevFormatProps(virStorageSourcePtr src)
  * qemuBlockStorageSourceGetBlockdevProps:
  *
  * @src: storage source to format
+ * @backingStore: a storage source to use as backing of @src
  *
  * Formats @src into a JSON object which can be used with blockdev-add or
  * -blockdev. The formatted object contains both the storage and format layer
  * in nested form including link to the backing chain layer if necessary.
  */
 virJSONValuePtr
-qemuBlockStorageSourceGetBlockdevProps(virStorageSourcePtr src)
+qemuBlockStorageSourceGetBlockdevProps(virStorageSourcePtr src,
+                                       virStorageSourcePtr backingStore)
 {
-    virStorageSourcePtr backingStore = src->backingStore;
     VIR_AUTOPTR(virJSONValue) props = NULL;
 
     if (!(props = qemuBlockStorageSourceGetBlockdevFormatProps(src)))
@@ -1484,7 +1485,8 @@ qemuBlockStorageSourceAttachPrepareBlockdev(virStorageSourcePtr src,
     if (VIR_ALLOC(data) < 0)
         return NULL;
 
-    if (!(data->formatProps = qemuBlockStorageSourceGetBlockdevProps(src)) ||
+    if (!(data->formatProps = qemuBlockStorageSourceGetBlockdevProps(src,
+                                                                     src->backingStore)) ||
         !(data->storageProps = qemuBlockStorageSourceGetBackendProps(src, false,
                                                                      false,
                                                                      autoreadonly)))
index a5e970fa1ec89328d2218dd51819754da37ddcc0..8c96a9b940dc2c829aa27e9a747eb15d02be67dc 100644 (file)
@@ -66,7 +66,8 @@ virURIPtr
 qemuBlockStorageSourceGetURI(virStorageSourcePtr src);
 
 virJSONValuePtr
-qemuBlockStorageSourceGetBlockdevProps(virStorageSourcePtr src);
+qemuBlockStorageSourceGetBlockdevProps(virStorageSourcePtr src,
+                                       virStorageSourcePtr backingStore);
 
 virJSONValuePtr
 qemuBlockStorageGetCopyOnReadProps(virDomainDiskDefPtr disk);
index 1bf72a4615a43b9cfbba8aa6e865dfe97ea3e8e8..bb0579056e43ef7ac1f27e41e88ba94c06619e63 100644 (file)
@@ -226,7 +226,7 @@ testQemuDiskXMLToProps(const void *opaque)
         if (qemuDomainPrepareDiskSourceData(disk, n, NULL, data->qemuCaps) < 0)
             goto cleanup;
 
-        if (!(formatProps = qemuBlockStorageSourceGetBlockdevProps(n)) ||
+        if (!(formatProps = qemuBlockStorageSourceGetBlockdevProps(n, n->backingStore)) ||
             !(storageSrcOnlyProps = qemuBlockStorageSourceGetBackendProps(n, false, true, true)) ||
             !(storageProps = qemuBlockStorageSourceGetBackendProps(n, false, false, true))) {
             if (!data->fail) {