On 09/15/2014 09:42 AM, Peter Krempa wrote:
From: Francesco Romani <fromani(a)redhat.com>
Management software wants to be able to allocate disk space on demand.
To support this they need keep track of the space occupation of the
block device. This information is reported by qemu as part of block
stats.
This patch extend the block information in the bulk stats with the
allocation information.
To keep the same behaviour a helper is extracted from
qemuMonitorJSONGetBlockExtent in order to get per-device allocation
information.
Signed-off-by: Francesco Romani <fromani(a)redhat.com>
---
src/libvirt.c | 2 +
src/qemu/qemu_driver.c | 18 +++++++++
src/qemu/qemu_monitor.h | 1 +
src/qemu/qemu_monitor_json.c | 91 ++++++++++++++++++++++++++++++++++----------
4 files changed, 92 insertions(+), 20 deletions(-)
diff --git a/src/libvirt.c b/src/libvirt.c
index ab10a3a..a8892a2 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -21654,6 +21654,8 @@ virConnectGetDomainCapabilities(virConnectPtr conn,
* unsigned long long.
* "block.<num>.errors" - Xen only: the 'oo_req' value as
* unsigned long long.
+ * "block.<num>.allocation" - offset of the highest written sector
+ * as unsigned long long.
If we are repeating virDomainGetBlockInfo() here, I'd rather see us
report all 3 pieces of information (allocation, capacity, physical)
instead of just one.
+typedef enum {
+ QEMU_MONITOR_BLOCK_EXTENT_ERROR_OK,
+ QEMU_MONITOR_BLOCK_EXTENT_ERROR_NOPARENT,
+ QEMU_MONITOR_BLOCK_EXTENT_ERROR_NOSTATS,
+ QEMU_MONITOR_BLOCK_EXTENT_ERROR_NOOFFSET
+} qemuMonitorBlockExtentError;
We require C99, so please have a trailing comma in the enum (it makes
adding new elements easier, because they don't have to modify an
existing line).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org