From: Peter Krempa Date: Thu, 20 Apr 2017 09:16:42 +0000 (+0200) Subject: qemu: Don't fail if physical size can't be updated in qemuDomainGetBlockInfo X-Git-Tag: v3.3.0-rc1~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f16bb7386939c400a7522d2489245f1e6831bae;p=thirdparty%2Flibvirt.git qemu: Don't fail if physical size can't be updated in qemuDomainGetBlockInfo Since commit c5f6151390 qemuDomainBlockInfo tries to update the "physical" storage size for all network storage and not only block devices. Since the storage driver APIs to do this are not implemented for certain storage types (RBD, iSCSI, ...) the code would fail to retrieve any data since the failure of qemuDomainStorageUpdatePhysical is fatal. Since it's desired to return data even if the total size can't be updated we need to ignore errors from that function and return plausible data. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1442344 --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 139ea52a6d..a5c664e656 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -11567,10 +11567,12 @@ qemuDomainGetBlockInfo(virDomainPtr dom, if (info->allocation == 0) info->allocation = entry->physical; - if (qemuDomainStorageUpdatePhysical(driver, cfg, vm, disk->src) < 0) - goto endjob; - - info->physical = disk->src->physical; + if (qemuDomainStorageUpdatePhysical(driver, cfg, vm, disk->src) == 0) { + info->physical = disk->src->physical; + } else { + virResetLastError(); + info->physical = entry->physical; + } } else { info->physical = entry->physical; }