diff options
author | Kevin Wolf <kwolf@redhat.com> | 2019-05-06 19:17:59 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2019-05-20 17:08:56 +0200 |
commit | 53a7d041858a6787a43012fd04ccf0258389a95d (patch) | |
tree | 6be7bbe4c54cbcd9fe4e1ca73e1013ccb5b8c324 /include | |
parent | 0d83708a1d2effc5d905cd1d61d0ef47d310ad88 (diff) | |
download | qemu-53a7d041858a6787a43012fd04ccf0258389a95d.zip |
block: Propagate AioContext change to parents
All block nodes and users in any connected component of the block graph
must be in the same AioContext, so changing the AioContext of one node
must not only change all of its children, but all of its parents (and
in turn their children etc.) as well.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/block/block.h | 2 | ||||
-rw-r--r-- | include/block/block_int.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/include/block/block.h b/include/block/block.h index fc0239a887..9b083e2bca 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -586,6 +586,8 @@ void bdrv_coroutine_enter(BlockDriverState *bs, Coroutine *co); * This function must be called with iothread lock held. */ void bdrv_set_aio_context(BlockDriverState *bs, AioContext *new_context); +void bdrv_set_aio_context_ignore(BlockDriverState *bs, + AioContext *new_context, GSList **ignore); int bdrv_try_set_aio_context(BlockDriverState *bs, AioContext *ctx, Error **errp); int bdrv_child_try_set_aio_context(BlockDriverState *bs, AioContext *ctx, diff --git a/include/block/block_int.h b/include/block/block_int.h index aa2c638b02..1eebc7c8f3 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -694,6 +694,7 @@ struct BdrvChildRole { bool (*can_set_aio_ctx)(BdrvChild *child, AioContext *ctx, GSList **ignore, Error **errp); + void (*set_aio_ctx)(BdrvChild *child, AioContext *ctx, GSList **ignore); }; extern const BdrvChildRole child_file; |