On 04/24/2014 07:41 AM, Martin Kletzander wrote:
+++ 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))
Peter may have to further tweak this with his work on gluster patches
(we should not be calling virFileExists() if virStorageIsFile(path)
returns fals); but for now this is a strict improvement.
ACK.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org