On Sep 12 19:10, Stefan Hajnoczi wrote: > The synchronous bdrv_aio_cancel() function needs the acb's AioContext so > it can call aio_poll() to wait for cancellation. > > It turns out that all users run under the BQL in the main AioContext, so > this callback is not needed. > > Remove the callback, mark bdrv_aio_cancel() GLOBAL_STATE_CODE just like > its blk_aio_cancel() caller, and poll the main loop AioContext. > > The purpose of this cleanup is to identify bdrv_aio_cancel() as an API > that does not work with the multi-queue block layer. > > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > --- > include/block/aio.h | 1 - > include/block/block-global-state.h | 2 ++ > include/block/block-io.h | 1 - > block/block-backend.c | 17 ----------------- > block/io.c | 23 ++++++++--------------- > hw/nvme/ctrl.c | 7 ------- > softmmu/dma-helpers.c | 8 -------- > util/thread-pool.c | 8 -------- > 8 files changed, 10 insertions(+), 57 deletions(-) > > diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c > index 539d273553..ee7273daa1 100644 > --- a/hw/nvme/ctrl.c > +++ b/hw/nvme/ctrl.c > @@ -2130,11 +2130,6 @@ static inline bool nvme_is_write(NvmeRequest *req) > rw->opcode == NVME_CMD_WRITE_ZEROES; > } > > -static AioContext *nvme_get_aio_context(BlockAIOCB *acb) > -{ > - return qemu_get_aio_context(); > -} > - > static void nvme_misc_cb(void *opaque, int ret) > { > NvmeRequest *req = opaque; > @@ -3302,7 +3297,6 @@ static void nvme_flush_cancel(BlockAIOCB *acb) > static const AIOCBInfo nvme_flush_aiocb_info = { > .aiocb_size = sizeof(NvmeFlushAIOCB), > .cancel_async = nvme_flush_cancel, > - .get_aio_context = nvme_get_aio_context, > }; > > static void nvme_do_flush(NvmeFlushAIOCB *iocb); > @@ -6478,7 +6472,6 @@ static void nvme_format_cancel(BlockAIOCB *aiocb) > static const AIOCBInfo nvme_format_aiocb_info = { > .aiocb_size = sizeof(NvmeFormatAIOCB), > .cancel_async = nvme_format_cancel, > - .get_aio_context = nvme_get_aio_context, > }; > > static void nvme_format_set(NvmeNamespace *ns, uint8_t lbaf, uint8_t mset,
Reviewed-by: Klaus Jensen <k.jen...@samsung.com>
signature.asc
Description: PGP signature