From 28eb9b12f7280287c7b693edd351f28ae0d99e60 Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Tue, 17 May 2016 16:41:29 +0200 Subject: [PATCH] block: Drop blk_new_with_bs() Its only caller is blk_new_open(), so we can just inline it there. The bdrv_new_root() call is dropped in the process because we can just let bdrv_open() create the BDS. Signed-off-by: Max Reitz Signed-off-by: Kevin Wolf --- block/block-backend.c | 30 +++++++----------------------- include/sysemu/block-backend.h | 1 - 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/block/block-backend.c b/block/block-backend.c index 9f306f897c..b96323f658 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -136,27 +136,7 @@ BlockBackend *blk_new(Error **errp) } /* - * Create a new BlockBackend with a new BlockDriverState attached. - * Otherwise just like blk_new(), which see. - */ -BlockBackend *blk_new_with_bs(Error **errp) -{ - BlockBackend *blk; - BlockDriverState *bs; - - blk = blk_new(errp); - if (!blk) { - return NULL; - } - - bs = bdrv_new_root(); - blk->root = bdrv_root_attach_child(bs, "root", &child_root); - blk->root->opaque = blk; - return blk; -} - -/* - * Calls blk_new_with_bs() and then calls bdrv_open() on the BlockDriverState. + * Creates a new BlockBackend, opens a new BlockDriverState, and connects both. * * Just as with bdrv_open(), after having called this function the reference to * @options belongs to the block layer (even on failure). @@ -171,21 +151,25 @@ BlockBackend *blk_new_open(const char *filename, const char *reference, QDict *options, int flags, Error **errp) { BlockBackend *blk; + BlockDriverState *bs; int ret; - blk = blk_new_with_bs(errp); + blk = blk_new(errp); if (!blk) { QDECREF(options); return NULL; } - ret = bdrv_open(&blk->root->bs, filename, reference, options, flags, errp); + bs = NULL; + ret = bdrv_open(&bs, filename, reference, options, flags, errp); if (ret < 0) { blk_unref(blk); return NULL; } blk_set_enable_write_cache(blk, true); + blk->root = bdrv_root_attach_child(bs, "root", &child_root); + blk->root->opaque = blk; return blk; } diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h index 68d92b556e..d0db3c381a 100644 --- a/include/sysemu/block-backend.h +++ b/include/sysemu/block-backend.h @@ -79,7 +79,6 @@ typedef struct BlockBackendPublic { } BlockBackendPublic; BlockBackend *blk_new(Error **errp); -BlockBackend *blk_new_with_bs(Error **errp); BlockBackend *blk_new_open(const char *filename, const char *reference, QDict *options, int flags, Error **errp); int blk_get_refcnt(BlockBackend *blk);