qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/3] block: Expose protocol-specific data to 'qe


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [Qemu-devel] [PATCH 1/3] block: Expose protocol-specific data to 'qemu-img info'
Date: Fri, 18 Jan 2019 14:20:47 +0000

17.01.2019 18:33, Eric Blake wrote:
> '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);
> +    }
>   }
> 


A bit related question:

Why do we always have nbd node as a protocol node? Can't we use nbd node 
directly,
without raw layer?


-- 
Best regards,
Vladimir

reply via email to

[Prev in Thread] Current Thread [Next in Thread]