[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/3] block: Expose protocol-specific data to 'qemu-i
From: |
Eric Blake |
Subject: |
[Qemu-devel] [PATCH 1/3] block: Expose protocol-specific data to 'qemu-img info' |
Date: |
Thu, 17 Jan 2019 09:33:19 -0600 |
'qemu-img info' is useful for showing additional information
about an image - but sometimes the interesting information is
specific to the protocol rather than to the format layer. Set
the groundwork for showing this information; further patches
will then enable specific pieces of information.
Signed-off-by: Eric Blake <address@hidden>
---
qapi/block-core.json | 6 +++++-
block/qapi.c | 7 +++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 91685be6c29..f28d5f5fc76 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -152,6 +152,9 @@
# @format-specific: structure supplying additional format-specific
# information (since 1.7)
#
+# @protocol-specific: structure supplying additional protocol-specific
+# information (since 4.0)
+#
# Since: 1.3
#
##
@@ -162,7 +165,8 @@
'*backing-filename': 'str', '*full-backing-filename': 'str',
'*backing-filename-format': 'str', '*snapshots': ['SnapshotInfo'],
'*backing-image': 'ImageInfo',
- '*format-specific': 'ImageInfoSpecific' } }
+ '*format-specific': 'ImageInfoSpecific',
+ '*protocol-specific': 'ImageInfoSpecific' } }
##
# @ImageCheck:
diff --git a/block/qapi.c b/block/qapi.c
index c66f949db83..a8d104ba8ce 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -284,6 +284,9 @@ void bdrv_query_image_info(BlockDriverState *bs,
}
info->format_specific = bdrv_get_specific_info(bs);
info->has_format_specific = info->format_specific != NULL;
+ info->protocol_specific =
+ bs->file ? bdrv_get_specific_info(bs->file->bs) : NULL;
+ info->has_protocol_specific = info->protocol_specific != NULL;
backing_filename = bs->backing_file;
if (backing_filename[0] != '\0') {
@@ -870,4 +873,8 @@ void bdrv_image_info_dump(fprintf_function func_fprintf,
void *f,
func_fprintf(f, "Format specific information:\n");
bdrv_image_info_specific_dump(func_fprintf, f, info->format_specific);
}
+ if (info->has_protocol_specific) {
+ func_fprintf(f, "Protocol specific information:\n");
+ bdrv_image_info_specific_dump(func_fprintf, f,
info->protocol_specific);
+ }
}
--
2.20.1