On 12/08/2014 07:26 AM, Peter Krempa wrote: > On 12/08/14 15:19, Peter Krempa wrote: >> On 12/06/14 09:14, Eric Blake wrote: >>> A coming patch will make it optionally possible to list backing >>> chain block stats; in this mode of operation, block.counts is no >>> longer the number of <disks> in the domain, but the number of >>> blocks in the array being reported. We still want block.count >>> listed first, but rather than iterate the tree twice (once to >>> count, and once to list stats), it's easier to just touch things >>> up after the fact. >>> >>> * src/qemu/qemu_driver.c (qemuDomainGetStatsBlock): Compute count >>> after the fact. >>> >>> Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> >>> --- >>> src/qemu/qemu_driver.c | 9 ++++++++- >>> 1 file changed, 8 insertions(+), 1 deletion(-) >>> > > Compiler complains: > > qemu/qemu_driver.c: In function 'qemuDomainGetStatsBlock': > qemu/qemu_driver.c:18630:46: error: 'i' may be used uninitialized in this function [-Werror=maybe-uninitialized] > record->params[count_index].value.ui = i; > ^ You must be compiling at -O2 while I was not :) Found the culprit: the QEMU_ADD_COUNT_PARAM macro has a hidden goto, that can bypass the initialization of i=0 in the for loop; the solution is trivial. >> >> ACK, >> > > if you fix the issue above. I'll be pushing the acked patches that can be reshuffled without dependencies, and reposting the rest of the series with fixes incorporated... diff --git i/src/qemu/qemu_driver.c w/src/qemu/qemu_driver.c index bb516af..78d1bdd 100644 --- i/src/qemu/qemu_driver.c +++ w/src/qemu/qemu_driver.c @@ -18539,7 +18539,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver, int *maxparams, unsigned int privflags) { - size_t i; + size_t i = 0; int ret = -1; int rc; virHashTablePtr stats = NULL; @@ -18568,7 +18568,7 @@ qemuDomainGetStatsBlock(virQEMUDriverPtr driver, count_index = record->nparams; QEMU_ADD_COUNT_PARAM(record, maxparams, "block", 0); - for (i = 0; i < dom->def->ndisks; i++) { + for (i; i < dom->def->ndisks; i++) { qemuBlockStats *entry; virDomainDiskDefPtr disk = dom->def->disks[i]; -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list