On Mon, Oct 12, 2015 at 12:16:15PM +0300, Alberto Garcia wrote:
> Passing an empty string allows opening an image but not its backing
> file. This was already described in the API documentation, only the
> implementation was missing.
>
> This is useful for creating snapshots using images opened with
> blockdev-add, since they are not supposed to have a backing image
> before the operation.
>
> Signed-off-by: Alberto Garcia <be...@igalia.com>
> Reviewed-by: Max Reitz <mre...@redhat.com>
> Reviewed-by: Eric Blake <ebl...@redhat.com>
> Reviewed-by: Kevin Wolf <kw...@redhat.com>
> ---
> block.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/block.c b/block.c
> index c9e3c6c..31d1b6e 100644
> --- a/block.c
> +++ b/block.c
> @@ -1406,6 +1406,7 @@ static int bdrv_open_inherit(BlockDriverState **pbs,
> const char *filename,
> BlockDriverState *file = NULL, *bs;
> BlockDriver *drv = NULL;
> const char *drvname;
> + const char *backing;
> Error *local_err = NULL;
> int snapshot_flags = 0;
>
> @@ -1473,6 +1474,12 @@ static int bdrv_open_inherit(BlockDriverState **pbs,
> const char *filename,
>
> assert(drvname || !(flags & BDRV_O_PROTOCOL));
>
> + backing = qdict_get_try_str(options, "backing");
> + if (backing && *backing == '\0') {
> + flags |= BDRV_O_NO_BACKING;
> + qdict_del(options, "backing");
> + }
> +
> bs->open_flags = flags;
> bs->options = options;
> options = qdict_clone_shallow(options);
> --
> 2.6.1
>
>
Reviewed-by: Jeff Cody <jc...@redhat.com>