On Thu, Apr 24, 2014 at 08:36:30AM -0600, Eric Blake wrote:
On 04/24/2014 07:41 AM, Martin Kletzander wrote:
> 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>
> ---
>
> +++ 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.
Oh, good point, the check could be extended to whether the storage
type is network and so on, as we have already somewhere, but as you
said, this will be changed many times probably, so I'll leave it on
Peter and buy him a beer Sometimes(TM).
Thanks, pushed now.
Martin