[PATCHv2] qemu: blockCopy: Allow reuse of raw image for shallow block copy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The documentation states that for shallow block copy the image has to
have the same guest visible content as backing file of the current
image if the file is being reused. This condition can be achieved also
with a raw file (or a qcow without a backing file) so remove the
condition that would disallow it.

(This patch additionally fixes crash described in
 https://bugzilla.redhat.com/show_bug.cgi?id=1215569 )
---
V2:
- different approach to fix Eric's comment


 src/qemu/qemu_driver.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 80463f2..581211a 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -17122,11 +17122,17 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
     if (qemuDomainDetermineDiskChain(driver, vm, disk, false, true) < 0)
         goto endjob;

+    /* clear the _SHALLOW flag if there is only one layer */
+    if (!disk->src->backingStore)
+        flags &= ~VIR_DOMAIN_BLOCK_COPY_SHALLOW;
+
+    /* unless the user provides a pre-created file, shallow copy into a raw
+     * file is not possible */
     if ((flags & VIR_DOMAIN_BLOCK_COPY_SHALLOW) &&
-        mirror->format == VIR_STORAGE_FILE_RAW &&
-        disk->src->backingStore->path) {
+        !(flags & VIR_DOMAIN_BLOCK_COPY_REUSE_EXT) &&
+        mirror->format == VIR_STORAGE_FILE_RAW) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                       _("disk '%s' has backing file, so raw shallow copy "
+                       _("shallow copy of disk '%s' into a raw file "
                          "is not possible"),
                        disk->dst);
         goto endjob;
-- 
2.3.5

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




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]