bdev/ocssd: Get spdk_nvme_ctrlr from not nvme_bdev_ctrlr but spdk_nvme_ns in I/O paths

The following patches will cache and use spdk_nvme_ns pointer rather than
nvme_bdev_ns pointer in I/O paths. As a preparation, change a few cases
to get spdk_nvme_ctrlr pointer from spdk_nvme_ns.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Ief5f01f85f46e2ad822af5b5abb13a14f28a0c6a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6834
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Shuhei Matsumoto 2021-03-10 19:44:52 +09:00 committed by Tomasz Zawadzki
parent 929a207b37
commit 21bff99197
2 changed files with 13 additions and 3 deletions

View File

@ -680,7 +680,7 @@ _bdev_ocssd_get_zone_info(struct ocssd_bdev *ocssd_bdev, struct nvme_bdev_ns *nv
lba = zone_id + ocdev_io->zone_info.chunk_offset * zone_size;
offset = bdev_ocssd_to_chunk_info_offset(ocssd_ns, lba);
return spdk_nvme_ctrlr_cmd_get_log_page(nvme_ns->ctrlr->ctrlr,
return spdk_nvme_ctrlr_cmd_get_log_page(spdk_nvme_ns_get_ctrlr(nvme_ns->ns),
SPDK_OCSSD_LOG_CHUNK_INFO,
spdk_nvme_ns_get_id(nvme_ns->ns),
&ocdev_io->zone_info.chunk_info,
@ -1173,13 +1173,15 @@ bdev_occsd_init_zone_cb(void *ctx, const struct spdk_nvme_cpl *cpl)
static int
bdev_ocssd_init_zone(struct bdev_ocssd_create_ctx *create_ctx)
{
struct spdk_nvme_ns *ns = create_ctx->nvme_ns->ns;
create_ctx->num_chunks = spdk_min(create_ctx->end_chunk_offset - create_ctx->chunk_offset,
OCSSD_BDEV_CHUNK_INFO_COUNT);
assert(create_ctx->num_chunks > 0);
return spdk_nvme_ctrlr_cmd_get_log_page(create_ctx->nvme_ns->ctrlr->ctrlr,
return spdk_nvme_ctrlr_cmd_get_log_page(spdk_nvme_ns_get_ctrlr(ns),
SPDK_OCSSD_LOG_CHUNK_INFO,
spdk_nvme_ns_get_id(create_ctx->nvme_ns->ns),
spdk_nvme_ns_get_id(ns),
&create_ctx->chunk_info,
sizeof(create_ctx->chunk_info[0]) *
create_ctx->num_chunks,

View File

@ -73,6 +73,7 @@ struct spdk_nvme_qpair {
struct spdk_nvme_ns {
uint32_t nsid;
struct spdk_nvme_ctrlr *ctrlr;
};
struct spdk_nvme_ctrlr {
@ -156,6 +157,7 @@ create_controller(const struct spdk_nvme_transport_id *trid, uint32_t ns_count,
for (nsid = 0; nsid < ns_count; ++nsid) {
ctrlr->ns[nsid].nsid = nsid + 1;
ctrlr->ns[nsid].ctrlr = ctrlr;
}
ctrlr->geometry = *geo;
@ -282,6 +284,12 @@ spdk_nvme_ns_get_id(struct spdk_nvme_ns *ns)
return ns->nsid;
}
struct spdk_nvme_ctrlr *
spdk_nvme_ns_get_ctrlr(struct spdk_nvme_ns *ns)
{
return ns->ctrlr;
}
struct spdk_nvme_ns *
spdk_nvme_ctrlr_get_ns(struct spdk_nvme_ctrlr *ctrlr, uint32_t nsid)
{