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 <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Max Reitz 2016-05-17 16:41:29 +02:00 committed by Kevin Wolf
parent 21a699afc8
commit 28eb9b12f7
2 changed files with 7 additions and 24 deletions

View File

@ -136,27 +136,7 @@ BlockBackend *blk_new(Error **errp)
} }
/* /*
* Create a new BlockBackend with a new BlockDriverState attached. * Creates a new BlockBackend, opens a new BlockDriverState, and connects both.
* 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.
* *
* Just as with bdrv_open(), after having called this function the reference to * Just as with bdrv_open(), after having called this function the reference to
* @options belongs to the block layer (even on failure). * @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) QDict *options, int flags, Error **errp)
{ {
BlockBackend *blk; BlockBackend *blk;
BlockDriverState *bs;
int ret; int ret;
blk = blk_new_with_bs(errp); blk = blk_new(errp);
if (!blk) { if (!blk) {
QDECREF(options); QDECREF(options);
return NULL; 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) { if (ret < 0) {
blk_unref(blk); blk_unref(blk);
return NULL; return NULL;
} }
blk_set_enable_write_cache(blk, true); blk_set_enable_write_cache(blk, true);
blk->root = bdrv_root_attach_child(bs, "root", &child_root);
blk->root->opaque = blk;
return blk; return blk;
} }

View File

@ -79,7 +79,6 @@ typedef struct BlockBackendPublic {
} BlockBackendPublic; } BlockBackendPublic;
BlockBackend *blk_new(Error **errp); BlockBackend *blk_new(Error **errp);
BlockBackend *blk_new_with_bs(Error **errp);
BlockBackend *blk_new_open(const char *filename, const char *reference, BlockBackend *blk_new_open(const char *filename, const char *reference,
QDict *options, int flags, Error **errp); QDict *options, int flags, Error **errp);
int blk_get_refcnt(BlockBackend *blk); int blk_get_refcnt(BlockBackend *blk);