Am 07.07.2021 um 10:50 hat Or Ozeri geschrieben:
> Would you suggest to do this child traversal on bdrv_query_image_info, and 
> have
> it returned as part of the ImageInfo struct?
> In that case, I would add *driver-specific to ImageInfo, in addition to the
> existing *format-specific?

No, extending ImageInfo with a single additonal field wouldn't be
generic either. It's not set in stone that your graph must consist of
exactly two block nodes.

> Or should I just do the traversal in img_info (qemu-img.c), avoiding
> the change to the ImageInfo struct?

Yes, img_info() or bdrv_image_info_dump() doing the traversal through
the chain is what I had in mind. Maybe let img_info() collect everything
and then pass a list of ImageInfos instead of just a single one to
bdrv_image_info_dump().

Kevin

> -----"Kevin Wolf" <[1]kw...@redhat.com> wrote: -----
> To: "Or Ozeri" <[2]o...@il.ibm.com>
> From: "Kevin Wolf" <[3]kw...@redhat.com>
> Date: 07/07/2021 10:52AM
> Cc: [4]qemu-devel@nongnu.org, [5]qemu-bl...@nongnu.org, [6]
> to.my.troc...@gmail.com, [7]dan...@il.ibm.com, [8]berra...@redhat.com, [9]
> idryo...@gmail.com
> Subject: [EXTERNAL] Re: [PATCH v1] block/raw-format: implement
> .bdrv_get_specific_info handler
> 
> Am 07.07.2021 um 07:35 hat Or Ozeri geschrieben:
> > When using the raw format, allow exposing specific info by the underlying
> storage.
> > In particular, this will enable RBD images using the raw format to indicate
> > a LUKS2 encrypted image in the output of qemu-img info.
> >
> > Signed-off-by: Or Ozeri <[10]o...@il.ibm.com>
> 
> This doesn't feel right because it would introduce an inconsistency
> (drivers are supposed to return information about their layer, and all
> drivers except raw would still do so) and therefore wouldn't even solve
> the full problem: For non-raw images, the information isn't any less
> useful, but it still wouldn't be available.
> 
> I believe the information is already available in QMP, using
> query-named-block-nodes, because then you get a separate BlockDeviceInfo
> (which contains ImageInfoSpecific) for each node, including the protocol
> node.
> 
> So maybe what we need to do is change qemu-img to iterate the node chain
> (possibly using bdrv_primary_bs()) and print the ImageInfoSpecific for
> each layer if it's present, while indicating which part is for which
> layer.
> 
> So the output could look like this:
> 
> ...
> Driver specific information (qcow2):
>     compat: 0.10
>     compression type: zlib
>     refcount bits: 16
> Driver specific information (rbd):
>     encryption format: luks
> 
> Kevin
> 
> 
> 
> 
> References:
> 
> [1] mailto:kw...@redhat.com
> [2] mailto:o...@il.ibm.com
> [3] mailto:kw...@redhat.com
> [4] mailto:qemu-devel@nongnu.org
> [5] mailto:qemu-bl...@nongnu.org
> [6] mailto:to.my.troc...@gmail.com
> [7] mailto:dan...@il.ibm.com
> [8] mailto:berra...@redhat.com
> [9] mailto:idryo...@gmail.com
> [10] mailto:o...@il.ibm.com


Reply via email to