On 09/08/2011 09:55 AM, Michal Privoznik wrote:
The commit 89b6284fd94ce5b13ee6b002f9167f5d9074aa7a caused
regression.
Although we now allow users to input e.g. 'hda' instead of whole path,
we still need to search for appropriate disk in VM definition.
---
src/qemu/qemu_driver.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 1925ba5..fec4eeb 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -7755,6 +7755,7 @@ static int qemuDomainGetBlockInfo(virDomainPtr dom,
virStorageFileMetadata *meta = NULL;
virDomainDiskDefPtr disk = NULL;
struct stat sb;
+ int i;
int format;
const char *actual;
@@ -7785,6 +7786,21 @@ static int qemuDomainGetBlockInfo(virDomainPtr dom,
}
path = actual;
+ /* Check the path belongs to this domain. */
+ for (i = 0 ; i< vm->def->ndisks ; i++) {
+ if (vm->def->disks[i]->src != NULL&&
+ STREQ (vm->def->disks[i]->src, path)) {
+ disk = vm->def->disks[i];
+ break;
+ }
+ }
NACK. This is open-coding the effects of virDomainDiskIndexByName().
Instead, we should be doing something like:
int i = virDomainDiskIndexByName(vm->def, path, false);
if (i < 0) error;
disk = vm->def->disks[i];
instead of virDomainDiskPathByName().
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org