diff options
author | Emanuele Giuseppe Esposito | 2022-10-25 10:49:49 +0200 |
---|---|---|
committer | Kevin Wolf | 2022-10-27 20:14:11 +0200 |
commit | f8be48adf08641f43dfb34b6abf50f9bc21fc250 (patch) | |
tree | 587995fd082d94b8c1af205da728d7e4957e73ee /block | |
parent | block-backend: implement .change_aio_ctx in child_root (diff) | |
download | qemu-f8be48adf08641f43dfb34b6abf50f9bc21fc250.tar.gz qemu-f8be48adf08641f43dfb34b6abf50f9bc21fc250.tar.xz qemu-f8be48adf08641f43dfb34b6abf50f9bc21fc250.zip |
block: use the new _change_ API instead of _can_set_ and _set_
Replace all direct usage of ->can_set_aio_ctx and ->set_aio_ctx,
and call bdrv_child_try_change_aio_context() in
bdrv_try_set_aio_context(), the main function called through
the whole block layer.
From this point onwards, ->can_set_aio_ctx and ->set_aio_ctx
won't be used anymore.
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20221025084952.2139888-8-eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/block-backend.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/block/block-backend.c b/block/block-backend.c index d87ae435a7..ff417dbff9 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -2153,8 +2153,12 @@ static int blk_do_set_aio_context(BlockBackend *blk, AioContext *new_context, bdrv_ref(bs); if (update_root_node) { - ret = bdrv_child_try_set_aio_context(bs, new_context, blk->root, - errp); + /* + * update_root_node MUST be false for blk_root_set_aio_ctx_commit(), + * as we are already in the commit function of a transaction. + */ + ret = bdrv_child_try_change_aio_context(bs, new_context, blk->root, + errp); if (ret < 0) { bdrv_unref(bs); return ret; |