From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55510) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b2gC6-0004Mt-2T for qemu-devel@nongnu.org; Tue, 17 May 2016 10:41:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b2gC0-0005j0-94 for qemu-devel@nongnu.org; Tue, 17 May 2016 10:41:57 -0400 From: Max Reitz Date: Tue, 17 May 2016 16:41:29 +0200 Message-Id: <1463496094-21608-5-git-send-email-mreitz@redhat.com> In-Reply-To: <1463496094-21608-1-git-send-email-mreitz@redhat.com> References: <1463496094-21608-1-git-send-email-mreitz@redhat.com> Subject: [Qemu-devel] [PATCH v4 4/9] block: Drop blk_new_with_bs() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, Max Reitz , Kevin Wolf , Alberto Garcia 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 --- 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 6928d61..287de44 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 68d92b5..d0db3c3 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); -- 2.8.2