From cfaa742841fd9f7aa45620f4ddbab0d2fa5a3a65 Mon Sep 17 00:00:00 2001 From: Maciej Szwed Date: Tue, 17 Sep 2019 10:20:55 +0200 Subject: [PATCH] bdev/nvme: Extract create_ctrlr from bdev_nvme_create_and_get_bdev_names This change will make possible to use connect_attach_cb function with other NVMe bdev types. Changing bdev_nvme_create_and_get_bdev_names function name to more suitable. Signed-off-by: Maciej Szwed Change-Id: I0bf79aba65914b4ac1826200f7d049e1c26276f4 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468594 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Ben Walker Reviewed-by: Shuhei Matsumoto --- module/bdev/nvme/bdev_nvme.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/module/bdev/nvme/bdev_nvme.c b/module/bdev/nvme/bdev_nvme.c index 4031266a9..41fb4955f 100644 --- a/module/bdev/nvme/bdev_nvme.c +++ b/module/bdev/nvme/bdev_nvme.c @@ -1191,27 +1191,16 @@ spdk_bdev_nvme_set_hotplug(bool enabled, uint64_t period_us, spdk_msg_fn cb, voi } static int -bdev_nvme_create_and_get_bdev_names(struct spdk_nvme_ctrlr *ctrlr, - const char *base_name, - const char **names, size_t *count, - const struct spdk_nvme_transport_id *trid, - uint32_t prchk_flags) +bdev_nvme_create_bdevs(const char **names, size_t *count, + const struct spdk_nvme_transport_id *trid) { struct nvme_bdev_ctrlr *nvme_bdev_ctrlr; struct nvme_bdev *nvme_bdev; uint32_t i, nsid; size_t j; - if (create_ctrlr(ctrlr, base_name, trid, prchk_flags)) { - SPDK_ERRLOG("Failed to create new device\n"); - return -1; - } - nvme_bdev_ctrlr = nvme_bdev_ctrlr_get(trid); - if (!nvme_bdev_ctrlr) { - SPDK_ERRLOG("Failed to find new NVMe controller\n"); - return -1; - } + assert(nvme_bdev_ctrlr != NULL); nvme_ctrlr_create_bdevs(nvme_bdev_ctrlr); @@ -1264,12 +1253,19 @@ connect_attach_cb(void *cb_ctx, const struct spdk_nvme_transport_id *trid, int rc; ctx = SPDK_CONTAINEROF(user_opts, struct nvme_async_probe_ctx, opts); - rc = bdev_nvme_create_and_get_bdev_names(ctrlr, - ctx->base_name, - ctx->names, ctx->count, - &ctx->trid, - ctx->prchk_flags); + rc = create_ctrlr(ctrlr, ctx->base_name, &ctx->trid, ctx->prchk_flags); + if (rc) { + SPDK_ERRLOG("Failed to create new device\n"); + goto end; + } + + rc = bdev_nvme_create_bdevs(ctx->names, ctx->count, &ctx->trid); + if (rc) { + SPDK_ERRLOG("Failed to create bdevs\n"); + } + +end: if (ctx->cb_fn) { ctx->cb_fn(ctx->cb_ctx, rc); }