From f6ec6af8a6314c73165b751f55f3e1e4bf5229f5 Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Tue, 29 Apr 2014 09:20:26 +0200 Subject: [PATCH] qemu: don't call virFileExists() for network type disks Based on suggestion from Eric [1], because it might not get cleaned up before the release, so to avoid potential errors. [1] https://www.redhat.com/archives/libvir-list/2014-April/msg00929.html Signed-off-by: Martin Kletzander --- src/qemu/qemu_domain.c | 4 +++- src/qemu/qemu_process.c | 9 ++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index ab19738109..8fa58f33dd 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2270,6 +2270,7 @@ qemuDomainCheckDiskPresence(virQEMUDriverPtr driver, disk = vm->def->disks[i - 1]; const char *path = virDomainDiskGetSource(disk); enum virStorageFileFormat format = virDomainDiskGetFormat(disk); + enum virStorageType type = virStorageSourceGetActualType(&disk->src); if (!path) continue; @@ -2277,7 +2278,8 @@ qemuDomainCheckDiskPresence(virQEMUDriverPtr driver, /* 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 && + if (type != VIR_STORAGE_TYPE_NETWORK && + format >= VIR_STORAGE_FILE_NONE && format < VIR_STORAGE_FILE_BACKING && virFileExists(path)) continue; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 0afad9d078..f53a9e169a 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -3807,11 +3807,6 @@ int qemuProcessStart(virConnectPtr conn, if (qemuAssignDeviceAliases(vm->def, priv->qemuCaps) < 0) goto cleanup; - if (qemuDomainCheckDiskPresence(driver, vm, - flags & VIR_QEMU_PROCESS_START_COLD) < 0) - goto cleanup; - - /* Get the advisory nodeset from numad if 'placement' of * either or is 'auto'. */ @@ -3840,6 +3835,10 @@ int qemuProcessStart(virConnectPtr conn, goto cleanup; } + if (qemuDomainCheckDiskPresence(driver, vm, + flags & VIR_QEMU_PROCESS_START_COLD) < 0) + goto cleanup; + if (VIR_ALLOC(priv->monConfig) < 0) goto cleanup;