[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 06/15] block/nvme: Use common error path in nvme_add_io_queue(
From: |
Philippe Mathieu-Daudé |
Subject: |
[PATCH v6 06/15] block/nvme: Use common error path in nvme_add_io_queue() |
Date: |
Fri, 21 Aug 2020 21:53:50 +0200 |
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>
---
block/nvme.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/block/nvme.c b/block/nvme.c
index c63629d3b45..419178adda3 100644
--- a/block/nvme.c
+++ b/block/nvme.c
@@ -649,8 +649,7 @@ static bool nvme_add_io_queue(BlockDriverState *bs, Error
**errp)
};
if (nvme_cmd_sync(bs, s->queues[INDEX_ADMIN], &cmd)) {
error_setg(errp, "Failed to create CQ io queue [%d]", n);
- nvme_free_queue_pair(q);
- return false;
+ goto out_error;
}
cmd = (NvmeCmd) {
.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)) {
error_setg(errp, "Failed to create SQ io queue [%d]", n);
- nvme_free_queue_pair(q);
- return false;
+ goto out_error;
}
s->queues = g_renew(NVMeQueuePair *, s->queues, n + 1);
s->queues[n] = q;
s->nr_queues++;
return true;
+out_error:
+ nvme_free_queue_pair(q);
+ return false;
}
static bool nvme_poll_cb(void *opaque)
--
2.26.2
- [PATCH v6 00/15] block/nvme: Various cleanups required to use multiple queues, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 01/15] block/nvme: Replace magic value by SCALE_MS definition, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 02/15] block/nvme: Avoid further processing if trace event not enabled, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 03/15] block/nvme: Let nvme_create_queue_pair() fail gracefully, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 04/15] block/nvme: Define INDEX macros to ease code review, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 05/15] block/nvme: Improve error message when IO queue creation failed, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 06/15] block/nvme: Use common error path in nvme_add_io_queue(),
Philippe Mathieu-Daudé <=
- [PATCH v6 07/15] block/nvme: Rename local variable, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 08/15] block/nvme: Use union of NvmeIdCtrl / NvmeIdNs structures, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 09/15] block/nvme: Replace qemu_try_blockalign0 by qemu_try_blockalign/memset, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 10/15] block/nvme: Replace qemu_try_blockalign(bs) by qemu_try_memalign(pg_sz), Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 11/15] block/nvme: Simplify nvme_init_queue() arguments, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 12/15] block/nvme: Replace BDRV_POLL_WHILE by AIO_WAIT_WHILE, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 13/15] block/nvme: Simplify nvme_create_queue_pair() arguments, Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 14/15] block/nvme: Extract nvme_poll_queue(), Philippe Mathieu-Daudé, 2020/08/21
- [PATCH v6 15/15] block/nvme: Use an array of EventNotifier, Philippe Mathieu-Daudé, 2020/08/21