提交 a714533b 编写于 作者: M Michal Privoznik

qemuMonitorJSONBlockStatsUpdateCapacity: Don't skip disks

The function queries the block devices visible to qemu
('query-block') and parses the qemu's output. The info is
returned in a hash table which is expected to be pre-filled by
qemuMonitorJSONGetAllBlockStatsInfo(). However, in the next patch
we are not going to call the latter function at all, so we should
make the former function add devices into the hash table if not
found there.
Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
上级 5ab746b8
...@@ -1889,15 +1889,21 @@ int qemuMonitorJSONBlockStatsUpdateCapacity(qemuMonitorPtr mon, ...@@ -1889,15 +1889,21 @@ int qemuMonitorJSONBlockStatsUpdateCapacity(qemuMonitorPtr mon,
if (STRPREFIX(dev_name, QEMU_DRIVE_HOST_PREFIX)) if (STRPREFIX(dev_name, QEMU_DRIVE_HOST_PREFIX))
dev_name += strlen(QEMU_DRIVE_HOST_PREFIX); dev_name += strlen(QEMU_DRIVE_HOST_PREFIX);
/* ignore missing info */
if (!(bstats = virHashLookup(stats, dev_name)))
continue;
/* drive may be empty */ /* drive may be empty */
if (!(inserted = virJSONValueObjectGet(dev, "inserted")) || if (!(inserted = virJSONValueObjectGet(dev, "inserted")) ||
!(image = virJSONValueObjectGet(inserted, "image"))) !(image = virJSONValueObjectGet(inserted, "image")))
continue; continue;
if (!(bstats = virHashLookup(stats, dev_name))) {
if (VIR_ALLOC(bstats) < 0)
goto cleanup;
if (virHashAddEntry(stats, dev_name, bstats) < 0) {
VIR_FREE(bstats);
goto cleanup;
}
}
if (virJSONValueObjectGetNumberUlong(image, "virtual-size", if (virJSONValueObjectGetNumberUlong(image, "virtual-size",
&bstats->capacity) < 0) &bstats->capacity) < 0)
continue; continue;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册