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