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][email protected]> wrote: ----- > To: "Or Ozeri" <[2][email protected]> > From: "Kevin Wolf" <[3][email protected]> > Date: 07/07/2021 10:52AM > Cc: [4][email protected], [5][email protected], [6] > [email protected], [7][email protected], [8][email protected], [9] > [email protected] > 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][email protected]> > > 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:[email protected] > [2] mailto:[email protected] > [3] mailto:[email protected] > [4] mailto:[email protected] > [5] mailto:[email protected] > [6] mailto:[email protected] > [7] mailto:[email protected] > [8] mailto:[email protected] > [9] mailto:[email protected] > [10] mailto:[email protected]
