@@ -5901,6 +5901,22 @@ void bdrv_io_unplug(BlockDriverState *bs)
}
}
+bool bdrv_aio_io_plug(AioContext *aio_ctx)
+{
+ if (aio_ctx->master_aio_bs) {
+ bdrv_io_plug(aio_ctx->master_aio_bs);
+ return true;
+ }
+ return false;
+}
+
+void bdrv_aio_io_unplug(AioContext *aio_ctx)
+{
+ if (aio_ctx->master_aio_bs) {
+ bdrv_io_unplug(aio_ctx->master_aio_bs);
+ }
+}
+
void bdrv_flush_io_queue(BlockDriverState *bs)
{
BlockDriver *drv = bs->drv;
@@ -541,6 +541,9 @@ void bdrv_io_plug(BlockDriverState *bs);
void bdrv_io_unplug(BlockDriverState *bs);
void bdrv_flush_io_queue(BlockDriverState *bs);
+bool bdrv_aio_io_plug(AioContext *aio_ctx);
+void bdrv_aio_io_unplug(AioContext *aio_ctx);
+
BlockAcctStats *bdrv_get_stats(BlockDriverState *bs);
#endif
These two APIs are introduced for using AioContext wide IO submission as batch. Signed-off-by: Ming Lei <ming.lei@canonical.com> --- block.c | 16 ++++++++++++++++ include/block/block.h | 3 +++ 2 files changed, 19 insertions(+)