[libvirt] [PATCH 06/10] qemu: Disband qemuDomainSnapshotCreateSingleDiskActive

Ján Tomko jtomko at redhat.com
Mon Aug 26 14:52:52 UTC 2019


On Fri, Aug 16, 2019 at 03:54:40PM +0200, Peter Krempa wrote:
>After we always assume support for the 'transaction' command
>(c358adc57113b) and follow-up cleanups
>qemuDomainSnapshotCreateSingleDiskActive lost it's value. Move the code

its

>into appropriate helpers and remove the function.
>
>Signed-off-by: Peter Krempa <pkrempa at redhat.com>
>---
> src/qemu/qemu_driver.c | 53 ++++++++++++++++--------------------------
> 1 file changed, 20 insertions(+), 33 deletions(-)
>
>diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>index 57d864cdd2..9248f912d0 100644
>--- a/src/qemu/qemu_driver.c
>+++ b/src/qemu/qemu_driver.c
>@@ -15368,6 +15368,22 @@ qemuDomainSnapshotDiskDataCollectOne(virQEMUDriverPtr driver,
>         }
>     }
>
>+    /* pre-create the image file so that we can label it before handing it to qemu */
>+    if (!reuse && dd->src->type != VIR_STORAGE_TYPE_BLOCK) {
>+        if (virStorageFileCreate(dd->src) < 0) {
>+            virReportSystemError(errno, _("failed to create image file '%s'"),
>+                                 NULLSTR(dd->src->path));
>+            return -1;
>+        }
>+        dd->created = true;
>+    }
>+
>+    /* set correct security, cgroup and locking options on the new image */
>+    if (qemuDomainStorageSourceAccessAllow(driver, vm, dd->src, false, true) < 0)
>+        return -1;
>+
>+    dd->prepared = true;
>+
>     return 0;

I don't think qemuDomainSnapshotDiskDataCollectOne is an appropriate
place to be creating image files.

Either rename them to qemuDomainSnapshotDiskPrepareData or something
that implies the change,

> }
>
>@@ -15463,36 +15479,6 @@ qemuDomainSnapshotUpdateDiskSources(virQEMUDriverPtr driver,
> }
>
>
>-static int
>-qemuDomainSnapshotCreateSingleDiskActive(virQEMUDriverPtr driver,
>-                                         virDomainObjPtr vm,
>-                                         qemuDomainSnapshotDiskDataPtr dd,
>-                                         virJSONValuePtr actions,
>-                                         bool reuse)
>-{
>-    if (qemuBlockSnapshotAddLegacy(actions, dd->disk, dd->src, reuse) < 0)
>-        return -1;
>-

or just split out this call out of qemuDomainSnapshotCreateSingleDiskActive

>-    /* pre-create the image file so that we can label it before handing it to qemu */
>-    if (!reuse && dd->src->type != VIR_STORAGE_TYPE_BLOCK) {
>-        if (virStorageFileCreate(dd->src) < 0) {
>-            virReportSystemError(errno, _("failed to create image file '%s'"),
>-                                 NULLSTR(dd->src->path));
>-            return -1;
>-        }
>-        dd->created = true;
>-    }
>-
>-    /* set correct security, cgroup and locking options on the new image */
>-    if (qemuDomainStorageSourceAccessAllow(driver, vm, dd->src, false, true) < 0)
>-        return -1;
>-
>-    dd->prepared = true;
>-
>-    return 0;
>-}
>-
>-
> /* The domain is expected to be locked and active. */
> static int
> qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,
>@@ -15535,9 +15521,10 @@ qemuDomainSnapshotCreateDiskActive(virQEMUDriverPtr driver,

And iterate over diskdata here as well.

With that change

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

Jano
>       * VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL with a valid file name and
>       * qcow2 format.  */
>     for (i = 0; i < ndiskdata; i++) {
>-        if (qemuDomainSnapshotCreateSingleDiskActive(driver, vm,
>-                                                     &diskdata[i],
>-                                                     actions, reuse) < 0)
>+        if (qemuBlockSnapshotAddLegacy(actions,
>+                                       diskdata[i].disk,
>+                                       diskdata[i].src,
>+                                       reuse) < 0)

>             goto cleanup;
>     }
>
>-- 
>2.21.0
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20190826/2ceb36c4/attachment-0001.sig>


More information about the libvir-list mailing list