]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: block: propagate the delete flag to where it can actually be used
authorPavel Mores <pmores@redhat.com>
Tue, 10 Dec 2019 16:25:38 +0000 (17:25 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 11 Dec 2019 07:40:18 +0000 (08:40 +0100)
Propagate the delete flag from qemuDomainBlockCommit() (which was just
ignoring it until now) to qemuBlockJobDiskNewCommit() where it can be
stored in the qemuBlockJobCommitData structure which holds information
necessary to finish the job asynchronously.

In the actual qemuBlockJobDiskNewCommit() in this commit, we temporarily
pass a literal 'false' to preserve the current behaviour until the whole
implementation of the feature is in place.

Signed-off-by: Pavel Mores <pmores@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_blockjob.c
src/qemu/qemu_blockjob.h
src/qemu/qemu_driver.c

index 81aa46c2fbe095cd587eda0e758e438405a24ace..718e311213e84251b2d8e6a3275d8ae6d61b1d02 100644 (file)
@@ -282,7 +282,8 @@ qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
                           virDomainDiskDefPtr disk,
                           virStorageSourcePtr topparent,
                           virStorageSourcePtr top,
-                          virStorageSourcePtr base)
+                          virStorageSourcePtr base,
+                          bool delete_imgs)
 {
     qemuDomainObjPrivatePtr priv = vm->privateData;
     g_autoptr(qemuBlockJobData) job = NULL;
@@ -305,6 +306,7 @@ qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
     job->data.commit.topparent = topparent;
     job->data.commit.top = top;
     job->data.commit.base = base;
+    job->data.commit.deleteCommittedImages = delete_imgs;
 
     if (qemuBlockJobRegister(job, vm, disk, true) < 0)
         return NULL;
index 52b03aaf9e8e0d680b91210451993ed6d6615d04..42b973fe9690a5490eb32e0a3d3bde2daeacf560 100644 (file)
@@ -87,6 +87,7 @@ struct _qemuBlockJobCommitData {
     virStorageSourcePtr topparent;
     virStorageSourcePtr top;
     virStorageSourcePtr base;
+    bool deleteCommittedImages;
 };
 
 
@@ -180,7 +181,8 @@ qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
                           virDomainDiskDefPtr disk,
                           virStorageSourcePtr topparent,
                           virStorageSourcePtr top,
-                          virStorageSourcePtr base);
+                          virStorageSourcePtr base,
+                          bool delete_imgs);
 
 qemuBlockJobDataPtr
 qemuBlockJobNewCreate(virDomainObjPtr vm,
index 9197dffadde31a23a35d320eb75d2b2082779deb..9c07b6b393669cd9b772fc21810c349b11eeadf2 100644 (file)
@@ -18686,7 +18686,7 @@ qemuDomainBlockCommit(virDomainPtr dom,
         goto endjob;
 
     if (!(job = qemuBlockJobDiskNewCommit(vm, disk, top_parent, topSource,
-                                          baseSource)))
+                                          baseSource, false)))
         goto endjob;
 
     disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_NONE;