diff options
author | Kevin Wolf <kwolf@redhat.com> | 2016-06-23 14:20:24 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2016-09-05 19:06:47 +0200 |
commit | b6c1bae5df8abbed73c4c0bd92e9963df8829c74 (patch) | |
tree | ec7cb9050fe81750505ffb555f66e205dd2e49d1 /block/block-backend.c | |
parent | 9ef6e505f00aaabfccd8f8b0f0685589a74e76ea (diff) |
block: Accept node-name for block-stream
In order to remove the necessity to use BlockBackend names in the
external API, we want to allow node-names everywhere. This converts
block-stream to accept a node-name without lifting the restriction that
we're operating at a root node.
In case of an invalid device name, the command returns the GenericError
error class now instead of DeviceNotFound, because this is what
qmp_get_root_bs() returns.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Diffstat (limited to 'block/block-backend.c')
-rw-r--r-- | block/block-backend.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/block/block-backend.c b/block/block-backend.c index effa038924..dc2bc60b9e 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -410,6 +410,22 @@ bool bdrv_has_blk(BlockDriverState *bs) } /* + * Returns true if @bs has only BlockBackends as parents. + */ +bool bdrv_is_root_node(BlockDriverState *bs) +{ + BdrvChild *c; + + QLIST_FOREACH(c, &bs->parents, next_parent) { + if (c->role != &child_root) { + return false; + } + } + + return true; +} + +/* * Return @blk's DriveInfo if any, else null. */ DriveInfo *blk_legacy_dinfo(BlockBackend *blk) |