@@ -642,7 +642,9 @@ static bool nvme_poll_cb(void *opaque)
return nvme_poll_queues(s);
}
-static bool nvme_add_io_queue(BlockDriverState *bs, Error **errp)
+/* Returns true on success, false on failure. */
+static bool nvme_add_io_queue(BlockDriverState *bs,
+ AioContext *aio_context, Error **errp)
{
BDRVNVMeState *s = bs->opaque;
unsigned n = s->nr_queues;
@@ -650,8 +652,7 @@ static bool nvme_add_io_queue(BlockDriverState *bs, Error **errp)
NvmeCmd cmd;
unsigned queue_size = NVME_QUEUE_SIZE;
- q = nvme_create_queue_pair(s, bdrv_get_aio_context(bs),
- n, queue_size, errp);
+ q = nvme_create_queue_pair(s, aio_context, n, queue_size, errp);
if (!q) {
return false;
}
@@ -805,7 +806,7 @@ static int nvme_init(BlockDriverState *bs, const char *device, int namespace,
}
/* Set up command queues. */
- if (!nvme_add_io_queue(bs, errp)) {
+ if (!nvme_add_io_queue(bs, aio_context, errp)) {
ret = -EIO;
}
out:
We want to get ride of the BlockDriverState pointer at some point, so pass aio_context along. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- block/nvme.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)