block: Assert non-coroutine context for bdrv_open_inherit()

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20230126172432.436111-14-kwolf@redhat.com>
Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Kevin Wolf 2023-01-26 18:24:32 +01:00
parent be1a732c9a
commit 321923010d

13
block.c
View File

@ -3807,13 +3807,11 @@ out:
* function eventually calls bdrv_refresh_total_sectors() which polls * function eventually calls bdrv_refresh_total_sectors() which polls
* when called from non-coroutine context. * when called from non-coroutine context.
*/ */
static BlockDriverState *bdrv_open_inherit(const char *filename, static BlockDriverState * no_coroutine_fn
const char *reference, bdrv_open_inherit(const char *filename, const char *reference, QDict *options,
QDict *options, int flags, int flags, BlockDriverState *parent,
BlockDriverState *parent, const BdrvChildClass *child_class, BdrvChildRole child_role,
const BdrvChildClass *child_class, Error **errp)
BdrvChildRole child_role,
Error **errp)
{ {
int ret; int ret;
BlockBackend *file = NULL; BlockBackend *file = NULL;
@ -3829,6 +3827,7 @@ static BlockDriverState *bdrv_open_inherit(const char *filename,
assert(!child_class || !flags); assert(!child_class || !flags);
assert(!child_class == !parent); assert(!child_class == !parent);
GLOBAL_STATE_CODE(); GLOBAL_STATE_CODE();
assert(!qemu_in_coroutine());
if (reference) { if (reference) {
bool options_non_empty = options ? qdict_size(options) : false; bool options_non_empty = options ? qdict_size(options) : false;