[libvirt] [PATCH v3] qemu: don't check for backing chains for formats w/o snapshot support

Martin Kletzander mkletzan at redhat.com
Thu Apr 24 13:41:48 UTC 2014


Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1019926
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=868673

Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
---

Notes:
    v3:
     - rebased on current master and this time it doesn't break
       startupPolicy for RAW disks
    
    v2:
     - smaller and cleaner variant of v1 [1] after discussion with Eric
    
    [1] https://www.redhat.com/archives/libvir-list/2014-April/msg00716.html

 src/qemu/qemu_domain.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index bb9cb6b..ab19738 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -2268,8 +2268,18 @@ qemuDomainCheckDiskPresence(virQEMUDriverPtr driver,
     VIR_DEBUG("Checking for disk presence");
     for (i = vm->def->ndisks; i > 0; i--) {
         disk = vm->def->disks[i - 1];
+        const char *path = virDomainDiskGetSource(disk);
+        enum virStorageFileFormat format = virDomainDiskGetFormat(disk);

-        if (!virDomainDiskGetSource(disk))
+        if (!path)
+            continue;
+
+        /* There is no need to check the backing chain for disks
+         * without backing support, the fact that the file exists is
+         * more than enough */
+        if (format >= VIR_STORAGE_FILE_NONE &&
+            format < VIR_STORAGE_FILE_BACKING &&
+            virFileExists(path))
             continue;

         if (qemuDomainDetermineDiskChain(driver, vm, disk, false) >= 0 &&
-- 
1.9.2




More information about the libvir-list mailing list