diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2019-05-20 17:22:05 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2019-05-20 17:22:05 +0100 |
commit | 2259637b95bef3116cc262459271de08e038cc66 (patch) | |
tree | b374012bc39ae4eac95b956c2303d0ab48260ed1 /include | |
parent | 6d8e75d41c58892ccc5d4ad61c4da476684c1c83 (diff) | |
parent | c423a6af592cf36b4f149c54e2966dd0016b7e96 (diff) | |
download | qemu-2259637b95bef3116cc262459271de08e038cc66.zip qemu-2259637b95bef3116cc262459271de08e038cc66.tar.gz qemu-2259637b95bef3116cc262459271de08e038cc66.tar.bz2 |
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging
Block layer patches:
- block: AioContext management, part 1
- qmp: forbid qmp_cont in RUN_STATE_FINISH_MIGRATE
- nvme: fix copy direction in DMA reads going to CMB
- file-posix: Fix block status for unaligned raw images with O_DIRECT
- file-posix: Fix xfs_write_zeroes() after EOF
- Documentation and iotests improvements
# gpg: Signature made Mon 20 May 2019 16:12:38 BST
# gpg: using RSA key 7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74 56FE 7F09 B272 C88F 2FD6
* remotes/kevin/tags/for-upstream: (24 commits)
iotests: Make 245 faster and more reliable
iotests.py: Fix VM.run_job
iotests.py: Let assert_qmp() accept an array
block: Improve "Block node is read-only" message
qemu-img.texi: Describe human-readable info output
qemu-img.texi: Be specific about JSON object types
iotests: Test unaligned raw images with O_DIRECT
block/file-posix: Unaligned O_DIRECT block-status
test-block-iothread: Test AioContext propagation for block jobs
blockjob: Remove AioContext notifiers
blockjob: Propagate AioContext change to all job nodes
block: Add blk_set_allow_aio_context_change()
block: Implement .(can_)set_aio_ctx for BlockBackend
test-block-iothread: Test AioContext propagation through the tree
block: Propagate AioContext change to parents
block: Move recursion to bdrv_set_aio_context()
block: Make bdrv_attach/detach_aio_context() static
block: Add bdrv_try_set_aio_context()
nvme: fix copy direction in DMA reads going to CMB
iotest: fix 169: do not run qmp_cont in RUN_STATE_FINISH_MIGRATE
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/block/block.h | 10 | ||||
-rw-r--r-- | include/block/block_int.h | 25 | ||||
-rw-r--r-- | include/sysemu/block-backend.h | 1 |
3 files changed, 15 insertions, 21 deletions
diff --git a/include/block/block.h b/include/block/block.h index 5e2b98b..9b083e2 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -586,6 +586,16 @@ 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, + BdrvChild *ignore_child, Error **errp); +bool bdrv_child_can_set_aio_context(BdrvChild *c, AioContext *ctx, + GSList **ignore, Error **errp); +bool bdrv_can_set_aio_context(BlockDriverState *bs, AioContext *ctx, + GSList **ignore, Error **errp); int bdrv_probe_blocksizes(BlockDriverState *bs, BlockSizes *bsz); int bdrv_probe_geometry(BlockDriverState *bs, HDGeometry *geo); diff --git a/include/block/block_int.h b/include/block/block_int.h index 94d45c9..1eebc7c 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -691,6 +691,10 @@ struct BdrvChildRole { * can update its reference. */ int (*update_filename)(BdrvChild *child, BlockDriverState *new_base, const char *filename, Error **errp); + + 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; @@ -963,27 +967,6 @@ void bdrv_add_before_write_notifier(BlockDriverState *bs, NotifierWithReturn *notifier); /** - * bdrv_detach_aio_context: - * - * May be called from .bdrv_detach_aio_context() to detach children from the - * current #AioContext. This is only needed by block drivers that manage their - * own children. Both ->file and ->backing are automatically handled and - * block drivers should not call this function on them explicitly. - */ -void bdrv_detach_aio_context(BlockDriverState *bs); - -/** - * bdrv_attach_aio_context: - * - * May be called from .bdrv_attach_aio_context() to attach children to the new - * #AioContext. This is only needed by block drivers that manage their own - * children. Both ->file and ->backing are automatically handled and block - * drivers should not call this function on them explicitly. - */ -void bdrv_attach_aio_context(BlockDriverState *bs, - AioContext *new_context); - -/** * bdrv_add_aio_context_notifier: * * If a long-running job intends to be always run in the same AioContext as a diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h index 5be6224..938de34 100644 --- a/include/sysemu/block-backend.h +++ b/include/sysemu/block-backend.h @@ -103,6 +103,7 @@ int blk_set_perm(BlockBackend *blk, uint64_t perm, uint64_t shared_perm, void blk_get_perm(BlockBackend *blk, uint64_t *perm, uint64_t *shared_perm); void blk_set_allow_write_beyond_eof(BlockBackend *blk, bool allow); +void blk_set_allow_aio_context_change(BlockBackend *blk, bool allow); void blk_iostatus_enable(BlockBackend *blk); bool blk_iostatus_is_enabled(const BlockBackend *blk); BlockDeviceIoStatus blk_iostatus(const BlockBackend *blk); |