From 1151e65dc1a66e253b4baf68481fc256c5320ddb Mon Sep 17 00:00:00 2001 From: Changpeng Liu Date: Mon, 4 Mar 2019 23:36:38 -0500 Subject: [PATCH] nvme: use asynchronous probe API in spdk_nvme_connect() Change-Id: Ib7b21dc64c2d5a5594b05b4d8ade839fc4b06fbc Signed-off-by: Changpeng Liu Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/447023 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/nvme/nvme.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/lib/nvme/nvme.c b/lib/nvme/nvme.c index 83329ac38..d8f57178b 100644 --- a/lib/nvme/nvme.c +++ b/lib/nvme/nvme.c @@ -635,7 +635,6 @@ spdk_nvme_connect(const struct spdk_nvme_transport_id *trid, { int rc; struct spdk_nvme_ctrlr *ctrlr = NULL; - spdk_nvme_probe_cb probe_cb = NULL; struct spdk_nvme_probe_ctx *probe_ctx; if (trid == NULL) { @@ -643,21 +642,16 @@ spdk_nvme_connect(const struct spdk_nvme_transport_id *trid, return NULL; } - rc = nvme_driver_init(); - if (rc != 0) { + if (opts && (opts_size != sizeof(*opts))) { + SPDK_ERRLOG("Invalid opts size\n"); return NULL; } - if (opts && opts_size == sizeof(*opts)) { - probe_cb = spdk_nvme_connect_probe_cb; - } - - probe_ctx = calloc(1, sizeof(*probe_ctx)); + probe_ctx = spdk_nvme_connect_async(trid, opts, NULL); if (!probe_ctx) { + SPDK_ERRLOG("Create probe context failed\n"); return NULL; } - spdk_nvme_probe_ctx_init(probe_ctx, trid, (void *)opts, probe_cb, NULL, NULL); - spdk_nvme_probe_internal(probe_ctx, true); rc = nvme_init_controllers(probe_ctx); if (rc != 0) {