On 01/16/2017 02:49 PM, Max Reitz wrote: > This function may be implemented by block drivers to derive a directory > name from a BDS. Concatenating this g_free()-able string with a relative > filename must result in a valid (not necessarily existing) filename, so > this is a function that should generally be not implemented by format > drivers, because this is protocol-specific. > > If a BDS's driver does not implement this function, bdrv_dirname() will > fall through to the BDS's file if it exists. If it does not, the > exact_filename field will be used to generate a directory name. > > Signed-off-by: Max Reitz <[email protected]> > --- > include/block/block.h | 1 + > include/block/block_int.h | 1 + > block.c | 26 ++++++++++++++++++++++++++ > 3 files changed, 28 insertions(+)
> +++ b/include/block/block_int.h
> @@ -130,6 +130,7 @@ struct BlockDriver {
> int (*bdrv_make_empty)(BlockDriverState *bs);
>
> void (*bdrv_refresh_filename)(BlockDriverState *bs, QDict *options);
> + char *(*bdrv_dirname)(BlockDriverState *bs, Error **errp);
I know we've been lousy at documentation in the past, but should we
start doing a better job of documenting the contract as we add new
callbacks, rather than just the commit messages?
Based on existing practice, though, I'm okay with:
Reviewed-by: Eric Blake <[email protected]>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
