block/nvme: Use common error path in nvme_add_io_queue()
Rearrange nvme_add_io_queue() by using a common error path. This will be proven useful in few commits where we add IRQ notification to the IO queues. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20200821195359.1285345-7-philmd@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
bf6ce5ec6d
commit
c8edbfb2cc
@ -649,8 +649,7 @@ static bool nvme_add_io_queue(BlockDriverState *bs, Error **errp)
|
|||||||
};
|
};
|
||||||
if (nvme_cmd_sync(bs, s->queues[INDEX_ADMIN], &cmd)) {
|
if (nvme_cmd_sync(bs, s->queues[INDEX_ADMIN], &cmd)) {
|
||||||
error_setg(errp, "Failed to create CQ io queue [%d]", n);
|
error_setg(errp, "Failed to create CQ io queue [%d]", n);
|
||||||
nvme_free_queue_pair(q);
|
goto out_error;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
cmd = (NvmeCmd) {
|
cmd = (NvmeCmd) {
|
||||||
.opcode = NVME_ADM_CMD_CREATE_SQ,
|
.opcode = NVME_ADM_CMD_CREATE_SQ,
|
||||||
@ -660,13 +659,15 @@ static bool nvme_add_io_queue(BlockDriverState *bs, Error **errp)
|
|||||||
};
|
};
|
||||||
if (nvme_cmd_sync(bs, s->queues[INDEX_ADMIN], &cmd)) {
|
if (nvme_cmd_sync(bs, s->queues[INDEX_ADMIN], &cmd)) {
|
||||||
error_setg(errp, "Failed to create SQ io queue [%d]", n);
|
error_setg(errp, "Failed to create SQ io queue [%d]", n);
|
||||||
nvme_free_queue_pair(q);
|
goto out_error;
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
s->queues = g_renew(NVMeQueuePair *, s->queues, n + 1);
|
s->queues = g_renew(NVMeQueuePair *, s->queues, n + 1);
|
||||||
s->queues[n] = q;
|
s->queues[n] = q;
|
||||||
s->nr_queues++;
|
s->nr_queues++;
|
||||||
return true;
|
return true;
|
||||||
|
out_error:
|
||||||
|
nvme_free_queue_pair(q);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool nvme_poll_cb(void *opaque)
|
static bool nvme_poll_cb(void *opaque)
|
||||||
|
Loading…
Reference in New Issue
Block a user