@@ -4584,12 +4584,6 @@ out:
}
}
-AioContext *bdrv_get_aio_context(BlockDriverState *bs)
-{
- /* Currently BlockDriverState always uses the main loop AioContext */
- return qemu_get_aio_context();
-}
-
void bdrv_add_before_write_notifier(BlockDriverState *bs,
NotifierWithReturn *notifier)
{
@@ -796,7 +796,7 @@ static BlockDriverAIOCB *paio_submit(BlockDriverState *bs, int fd,
acb->aio_offset = sector_num * 512;
trace_paio_submit(acb, opaque, sector_num, nb_sectors, type);
- pool = aio_get_thread_pool(bdrv_get_aio_context(bs));
+ pool = aio_get_thread_pool(*tls_get_thread_aio_context());
return thread_pool_submit_aio(pool, aio_worker, acb, cb, opaque);
}
@@ -1462,7 +1462,7 @@ static BlockDriverAIOCB *hdev_aio_ioctl(BlockDriverState *bs,
acb->aio_offset = 0;
acb->aio_ioctl_buf = buf;
acb->aio_ioctl_cmd = req;
- pool = aio_get_thread_pool(bdrv_get_aio_context(bs));
+ pool = aio_get_thread_pool(*tls_get_thread_aio_context());
return thread_pool_submit_aio(pool, aio_worker, acb, cb, opaque);
}
@@ -158,7 +158,7 @@ static BlockDriverAIOCB *paio_submit(BlockDriverState *bs, HANDLE hfile,
acb->aio_offset = sector_num * 512;
trace_paio_submit(acb, opaque, sector_num, nb_sectors, type);
- pool = aio_get_thread_pool(bdrv_get_aio_context(bs));
+ pool = aio_get_thread_pool(*tls_get_thread_aio_context());
return thread_pool_submit_aio(pool, aio_worker, acb, cb, opaque);
}
@@ -319,13 +319,6 @@ void bdrv_set_io_limits(BlockDriverState *bs,
void bdrv_add_before_write_notifier(BlockDriverState *bs,
NotifierWithReturn *notifier);
-/**
- * bdrv_get_aio_context:
- *
- * Returns: the currently bound #AioContext
- */
-AioContext *bdrv_get_aio_context(BlockDriverState *bs);
-
#ifdef _WIN32
int is_windows_drive(const char *filename);
#endif
Associating a BlockDriverState with a single AioContext is not flexible enough. Once we make BlockDriverState thread-safe, it will be possible to call bdrv_*() functions from multiple event loops. Use the thread-local AioContext pointer instead of bdrv_get_aio_context(). Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- block.c | 6 ------ block/raw-posix.c | 4 ++-- block/raw-win32.c | 2 +- include/block/block_int.h | 7 ------- 4 files changed, 3 insertions(+), 16 deletions(-)