Skip to content

Commit

Permalink
block: support passing 'backing': '' to 'blockdev-add'
Browse files Browse the repository at this point in the history
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 <berto@igalia.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
  • Loading branch information
bertogg authored and kevmw committed Nov 11, 2015
1 parent a911e6a commit 3e8c2e5
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions block.c
Expand Up @@ -1393,6 +1393,7 @@ static int bdrv_open_inherit(BlockDriverState **pbs, const char *filename,
BlockDriverState *bs;
BlockDriver *drv = NULL;
const char *drvname;
const char *backing;
Error *local_err = NULL;
int snapshot_flags = 0;

Expand Down Expand Up @@ -1460,6 +1461,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);
Expand Down

0 comments on commit 3e8c2e5

Please sign in to comment.