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@xxxxxxxxxx> --- 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list