diff options
author | Kevin Wolf <kwolf@redhat.com> | 2014-04-17 13:27:05 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2014-04-22 12:00:28 +0200 |
commit | f2d953ec31eeeb3029ca915a55938c538a14efa8 (patch) | |
tree | cdf3f33ebe91969f843d784e03c798ef80d6fad8 /block.c | |
parent | 9ffe333276de8ef463896303fb951f03fd4ffcb4 (diff) |
block: Catch duplicate IDs in bdrv_new()
Since commit f298d071, block devices added with blockdev-add don't have
a QemuOpts around in dinfo->opts. Consequently, we can't rely any more
on QemuOpts catching duplicate IDs for block devices.
This patch adds a new check for duplicate IDs to bdrv_new(), and moves
the existing check that the ID isn't already taken for a node-name there
as well.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'block.c')
-rw-r--r-- | block.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -336,6 +336,17 @@ BlockDriverState *bdrv_new(const char *device_name, Error **errp) { BlockDriverState *bs; + if (bdrv_find(device_name)) { + error_setg(errp, "Device with id '%s' already exists", + device_name); + return NULL; + } + if (bdrv_find_node(device_name)) { + error_setg(errp, "Device with node-name '%s' already exists", + device_name); + return NULL; + } + bs = g_malloc0(sizeof(BlockDriverState)); QLIST_INIT(&bs->dirty_bitmaps); pstrcpy(bs->device_name, sizeof(bs->device_name), device_name); |