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(a)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