From 9da3d742ff08eaae8cfa4e66bfbf6224c08deb8d Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Fri, 4 Mar 2022 20:43:23 +0000 Subject: [PATCH] bdev_nvme: add nvme_ctrlr::from_discovery_service This keeps track if an nvme_ctrlr was created implicitly by the discovery service. Signed-off-by: Jim Harris Change-Id: I493b7cacfe563737f45a1fffca98855a1929a751 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11817 Community-CI: Mellanox Build Bot Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Aleksey Marchuk Reviewed-by: Shuhei Matsumoto --- module/bdev/nvme/bdev_nvme.c | 1 + module/bdev/nvme/bdev_nvme.h | 1 + module/bdev/nvme/bdev_nvme_rpc.c | 2 ++ 3 files changed, 4 insertions(+) diff --git a/module/bdev/nvme/bdev_nvme.c b/module/bdev/nvme/bdev_nvme.c index 9c5c94303..e5ae0ba6e 100644 --- a/module/bdev/nvme/bdev_nvme.c +++ b/module/bdev/nvme/bdev_nvme.c @@ -4735,6 +4735,7 @@ bdev_nvme_start_discovery(struct spdk_nvme_transport_id *trid, } memcpy(&ctx->drv_opts, drv_opts, sizeof(*drv_opts)); memcpy(&ctx->bdev_opts, bdev_opts, sizeof(*bdev_opts)); + ctx->bdev_opts.from_discovery_service = true; ctx->calling_thread = spdk_get_thread(); TAILQ_INIT(&ctx->nvm_entry_ctxs); TAILQ_INIT(&ctx->discovery_entry_ctxs); diff --git a/module/bdev/nvme/bdev_nvme.h b/module/bdev/nvme/bdev_nvme.h index bb3920ff7..b7681cace 100644 --- a/module/bdev/nvme/bdev_nvme.h +++ b/module/bdev/nvme/bdev_nvme.h @@ -56,6 +56,7 @@ struct nvme_ctrlr_opts { int32_t ctrlr_loss_timeout_sec; uint32_t reconnect_delay_sec; uint32_t fast_io_fail_timeout_sec; + bool from_discovery_service; }; struct nvme_async_probe_ctx { diff --git a/module/bdev/nvme/bdev_nvme_rpc.c b/module/bdev/nvme/bdev_nvme_rpc.c index ad37d7889..533300dd4 100644 --- a/module/bdev/nvme/bdev_nvme_rpc.c +++ b/module/bdev/nvme/bdev_nvme_rpc.c @@ -517,6 +517,8 @@ rpc_bdev_nvme_attach_controller(struct spdk_jsonrpc_request *request, ctx->request = request; ctx->count = NVME_MAX_BDEVS_PER_RPC; + /* Should already be zero due to the calloc(), but set explicitly for clarity. */ + ctx->req.bdev_opts.from_discovery_service = false; rc = bdev_nvme_create(&trid, ctx->req.name, ctx->names, ctx->count, rpc_bdev_nvme_attach_controller_done, ctx, &ctx->req.drv_opts, &ctx->req.bdev_opts, multipath);