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);