[libvirt] [PATCH v3 07/18] qemu: block: explicitly pass backing store to qemuBlockStorageSourceAttachPrepareBlockdev

Peter Krempa posted 18 patches 6 years, 5 months ago
[libvirt] [PATCH v3 07/18] qemu: block: explicitly pass backing store to qemuBlockStorageSourceAttachPrepareBlockdev
Posted by Peter Krempa 6 years, 5 months ago
Pass backing store as an argument rather than extracting it locally and
fix the callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_block.c     | 4 +++-
 src/qemu/qemu_block.h     | 1 +
 src/qemu/qemu_command.c   | 2 +-
 src/qemu/qemu_migration.c | 4 +++-
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
index fb631276c9..4b5dd30e17 100644
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -1464,6 +1464,7 @@ qemuBlockStorageSourceAttachDataFree(qemuBlockStorageSourceAttachDataPtr data)
 /**
  * qemuBlockStorageSourceAttachPrepareBlockdev:
  * @src: storage source to prepare data from
+ * @backingStore: storage source to use as backing of @src
  * @autoreadonly: use 'auto-read-only' feature of qemu
  *
  * Creates a qemuBlockStorageSourceAttachData structure containing data to attach
@@ -1478,6 +1479,7 @@ qemuBlockStorageSourceAttachDataFree(qemuBlockStorageSourceAttachDataPtr data)
  */
 qemuBlockStorageSourceAttachDataPtr
 qemuBlockStorageSourceAttachPrepareBlockdev(virStorageSourcePtr src,
+                                            virStorageSourcePtr backingStore,
                                             bool autoreadonly)
 {
     VIR_AUTOPTR(qemuBlockStorageSourceAttachData) data = NULL;
@@ -1486,7 +1488,7 @@ qemuBlockStorageSourceAttachPrepareBlockdev(virStorageSourcePtr src,
         return NULL;

     if (!(data->formatProps = qemuBlockStorageSourceGetBlockdevProps(src,
-                                                                     src->backingStore)) ||
+                                                                     backingStore)) ||
         !(data->storageProps = qemuBlockStorageSourceGetBackendProps(src, false,
                                                                      false,
                                                                      autoreadonly)))
diff --git a/src/qemu/qemu_block.h b/src/qemu/qemu_block.h
index 8c96a9b940..2de614b159 100644
--- a/src/qemu/qemu_block.h
+++ b/src/qemu/qemu_block.h
@@ -109,6 +109,7 @@ VIR_DEFINE_AUTOPTR_FUNC(qemuBlockStorageSourceAttachData,

 qemuBlockStorageSourceAttachDataPtr
 qemuBlockStorageSourceAttachPrepareBlockdev(virStorageSourcePtr src,
+                                            virStorageSourcePtr backingStore,
                                             bool autoreadonly);

 qemuBlockStorageSourceAttachDataPtr
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 05c35919bf..fa8bf39359 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -10727,7 +10727,7 @@ qemuBuildStorageSourceChainAttachPrepareBlockdevOne(qemuBlockStorageSourceChainD
 {
     VIR_AUTOPTR(qemuBlockStorageSourceAttachData) elem = NULL;

-    if (!(elem = qemuBlockStorageSourceAttachPrepareBlockdev(src, true)))
+    if (!(elem = qemuBlockStorageSourceAttachPrepareBlockdev(src, src->backingStore, true)))
         return -1;

     if (qemuBuildStorageSourceAttachPrepareCommon(src, elem, qemuCaps) < 0)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index bd40a8e70d..e387deb497 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -832,7 +832,9 @@ qemuMigrationSrcNBDStorageCopyBlockdev(virQEMUDriverPtr driver,

     /* Migration via blockdev-mirror was supported sooner than the auto-read-only
      * feature was added to qemu */
-    if (!(data = qemuBlockStorageSourceAttachPrepareBlockdev(copysrc, false)))
+    if (!(data = qemuBlockStorageSourceAttachPrepareBlockdev(copysrc,
+                                                             copysrc->backingStore,
+                                                             false)))
         goto cleanup;

     if (qemuDomainObjEnterMonitorAsync(driver, vm,
-- 
2.21.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v3 07/18] qemu: block: explicitly pass backing store to qemuBlockStorageSourceAttachPrepareBlockdev
Posted by Ján Tomko 6 years, 5 months ago
On Tue, Sep 03, 2019 at 04:08:00PM +0200, Peter Krempa wrote:
>Pass backing store as an argument rather than extracting it locally and
>fix the callers.
>
>Signed-off-by: Peter Krempa <pkrempa@redhat.com>
>---
> src/qemu/qemu_block.c     | 4 +++-
> src/qemu/qemu_block.h     | 1 +
> src/qemu/qemu_command.c   | 2 +-
> src/qemu/qemu_migration.c | 4 +++-
> 4 files changed, 8 insertions(+), 3 deletions(-)

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list