Commit 70b21163 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Tomasz Zawadzki
Browse files

bdev/nvme: change nvme_ns_alloc interface



It now takes additional arguments. This is a preparatory change where
the alloc/free functions will be renamed and will cover more logic.

Change-Id: If06a422527113a22935d21f891c95a26810cdb8d
Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26879


Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz@tzawadzki.com>
parent e3cbfb51
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -353,7 +353,6 @@ static int bdev_nvme_failover_ctrlr(struct nvme_ctrlr *nvme_ctrlr);
static void remove_cb(void *cb_ctx, struct spdk_nvme_ctrlr *ctrlr);
static int nvme_ctrlr_read_ana_log_page(struct nvme_ctrlr *nvme_ctrlr);

static struct nvme_ns *nvme_ns_alloc(void);
static void nvme_ns_free(struct nvme_ns *ns);

static int
@@ -4934,7 +4933,7 @@ timeout_cb(void *cb_arg, struct spdk_nvme_ctrlr *ctrlr,
}

static struct nvme_ns *
nvme_ns_alloc(void)
nvme_ns_alloc(struct nvme_ctrlr *nvme_ctrlr, uint32_t nsid, struct nvme_async_probe_ctx *ctx)
{
	struct nvme_ns *nvme_ns;

@@ -4952,6 +4951,10 @@ nvme_ns_alloc(void)
		spdk_bdev_reset_io_stat(nvme_ns->stat, SPDK_BDEV_RESET_STAT_MAXMIN);
	}

	nvme_ns->id = nsid;
	nvme_ns->ctrlr = nvme_ctrlr;
	nvme_ns->probe_ctx = ctx;

	return nvme_ns;
}

@@ -5266,22 +5269,16 @@ nvme_ctrlr_populate_namespaces(struct nvme_ctrlr *nvme_ctrlr,
			continue;
		}

		nvme_ns = nvme_ns_alloc();
		nvme_ns = nvme_ns_alloc(nvme_ctrlr, nsid, ctx);
		if (nvme_ns == NULL) {
			NVME_CTRLR_ERRLOG(nvme_ctrlr, "Failed to allocate namespace\n");
			/* This just fails to attach the namespace. It may work on a future attempt. */
			continue;
		}

		nvme_ns->id = nsid;
		nvme_ns->ctrlr = nvme_ctrlr;

		nvme_ns->bdev = NULL;

		if (ctx) {
			ctx->populates_in_progress++;
		}
		nvme_ns->probe_ctx = ctx;

		pthread_mutex_lock(&nvme_ctrlr->mutex);
		RB_INSERT(nvme_ns_tree, &nvme_ctrlr->namespaces, nvme_ns);