From efaa7c4eeb7490c6f37f34fbc77e91f29363eebd Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Wed, 16 Mar 2016 19:54:38 +0100 Subject: blockdev: Split monitor reference from BB creation Before this patch, blk_new() automatically assigned a name to the new BlockBackend and considered it referenced by the monitor. This patch removes the implicit monitor_add_blk() call from blk_new() (and consequently the monitor_remove_blk() call from blk_delete(), too) and thus blk_new() (and related functions) no longer take a BB name argument. In fact, there is only a single point where blk_new()/blk_new_open() is called and the new BB is monitor-owned, and that is in blockdev_init(). Besides thus relieving us from having to invent names for all of the BBs we use in qemu-img, this fixes a bug where qemu cannot create a new image if there already is a monitor-owned BB named "image". If a BB and its BDS tree are created in a single operation, as of this patch the BDS tree will be created before the BB is given a name (whereas it was the other way around before). This results in minor change to the output of iotest 087, whose reference output is amended accordingly. Signed-off-by: Max Reitz Signed-off-by: Kevin Wolf --- block/qed.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'block/qed.c') diff --git a/block/qed.c b/block/qed.c index 225c6a5a80..5b24a9783f 100644 --- a/block/qed.c +++ b/block/qed.c @@ -574,7 +574,7 @@ static int qed_create(const char *filename, uint32_t cluster_size, return ret; } - blk = blk_new_open("image", filename, NULL, NULL, + blk = blk_new_open(filename, NULL, NULL, BDRV_O_RDWR | BDRV_O_CACHE_WB | BDRV_O_PROTOCOL, &local_err); if (blk == NULL) { -- cgit v1.2.3