summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorEmanuele Giuseppe Esposito2022-10-25 10:49:49 +0200
committerKevin Wolf2022-10-27 20:14:11 +0200
commitf8be48adf08641f43dfb34b6abf50f9bc21fc250 (patch)
tree587995fd082d94b8c1af205da728d7e4957e73ee /block
parentblock-backend: implement .change_aio_ctx in child_root (diff)
downloadqemu-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.c8
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;