[libvirt] [PATCH 1/5] qemu: block commit: Determine relative path of images before initializing

Peter Krempa posted 5 patches 8 years, 7 months ago
[libvirt] [PATCH 1/5] qemu: block commit: Determine relative path of images before initializing
Posted by Peter Krempa 8 years, 7 months ago
Changing labelling of the images does not need to happen after setting
the labeling and lock manager access. This saves the cleanup of the
labeling if the relative path can't be determined.
---
 src/qemu/qemu_driver.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d3526da8c..0cf4aaa95 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -17193,19 +17193,6 @@ qemuDomainBlockCommit(virDomainPtr dom,
             goto endjob;
     }

-    /* For the commit to succeed, we must allow qemu to open both the
-     * 'base' image and the parent of 'top' as read/write; 'top' might
-     * not have a parent, or might already be read-write.  XXX It
-     * would also be nice to revert 'base' to read-only, as well as
-     * revoke access to files removed from the chain, when the commit
-     * operation succeeds, but doing that requires tracking the
-     * operation in XML across libvirtd restarts.  */
-    clean_access = true;
-    if (qemuDomainDiskChainElementPrepare(driver, vm, baseSource, false) < 0 ||
-        (top_parent && top_parent != disk->src &&
-         qemuDomainDiskChainElementPrepare(driver, vm, top_parent, false) < 0))
-        goto endjob;
-
     if (flags & VIR_DOMAIN_BLOCK_COMMIT_RELATIVE &&
         topSource != disk->src) {
         if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_CHANGE_BACKING_FILE)) {
@@ -17225,6 +17212,19 @@ qemuDomainBlockCommit(virDomainPtr dom,
         }
     }

+    /* For the commit to succeed, we must allow qemu to open both the
+     * 'base' image and the parent of 'top' as read/write; 'top' might
+     * not have a parent, or might already be read-write.  XXX It
+     * would also be nice to revert 'base' to read-only, as well as
+     * revoke access to files removed from the chain, when the commit
+     * operation succeeds, but doing that requires tracking the
+     * operation in XML across libvirtd restarts.  */
+    clean_access = true;
+    if (qemuDomainDiskChainElementPrepare(driver, vm, baseSource, false) < 0 ||
+        (top_parent && top_parent != disk->src &&
+         qemuDomainDiskChainElementPrepare(driver, vm, top_parent, false) < 0))
+        goto endjob;
+
     /* Start the commit operation.  Pass the user's original spelling,
      * if any, through to qemu, since qemu may behave differently
      * depending on whether the input was specified as relative or
-- 
2.12.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 1/5] qemu: block commit: Determine relative path of images before initializing
Posted by Pavel Hrdina 8 years, 7 months ago
On Tue, Jun 20, 2017 at 12:56:52PM +0200, Peter Krempa wrote:
> Changing labelling of the images does not need to happen after setting
> the labeling and lock manager access. This saves the cleanup of the
> labeling if the relative path can't be determined.
> ---
>  src/qemu/qemu_driver.c | 26 +++++++++++++-------------
>  1 file changed, 13 insertions(+), 13 deletions(-)

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list