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:
parent
929a207b37
commit
21bff99197
@ -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,
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user