From b2c29e91c5f9e4352cbace41886965a59518fd2c Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Thu, 17 Dec 2020 17:36:24 +0900 Subject: [PATCH] bdev/nvme: Change parameter of nvme_ctrlr_depopulate_namespace_done() from ctrlr to ns The following patches will need to update nvme_bdev_ns at nvme_ctrlr_depopulate_namespace_done(). nvme_bdev_ctrlr can be got from nvme_bdev_ns, and so this change will cause no issue. Signed-off-by: Shuhei Matsumoto Change-Id: I7cbfe0d936a3a757a8792fdf842e1228b2df05e6 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4531 Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins Reviewed-by: Changpeng Liu Reviewed-by: Jim Harris Reviewed-by: Aleksey Marchuk --- module/bdev/nvme/bdev_nvme.c | 6 ++++-- module/bdev/nvme/bdev_ocssd.c | 2 +- module/bdev/nvme/common.h | 2 +- test/unit/lib/bdev/bdev_ocssd.c/bdev_ocssd_ut.c | 4 +++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/module/bdev/nvme/bdev_nvme.c b/module/bdev/nvme/bdev_nvme.c index 04ea5e13d..db2338e12 100644 --- a/module/bdev/nvme/bdev_nvme.c +++ b/module/bdev/nvme/bdev_nvme.c @@ -1293,8 +1293,10 @@ timeout_cb(void *cb_arg, struct spdk_nvme_ctrlr *ctrlr, } void -nvme_ctrlr_depopulate_namespace_done(struct nvme_bdev_ctrlr *nvme_bdev_ctrlr) +nvme_ctrlr_depopulate_namespace_done(struct nvme_bdev_ns *nvme_ns) { + struct nvme_bdev_ctrlr *nvme_bdev_ctrlr = nvme_ns->ctrlr; + pthread_mutex_lock(&g_bdev_nvme_mutex); assert(nvme_bdev_ctrlr->ref > 0); nvme_bdev_ctrlr->ref--; @@ -1319,7 +1321,7 @@ nvme_ctrlr_depopulate_standard_namespace(struct nvme_bdev_ns *nvme_ns) nvme_ns->populated = false; - nvme_ctrlr_depopulate_namespace_done(nvme_ns->ctrlr); + nvme_ctrlr_depopulate_namespace_done(nvme_ns); } static void diff --git a/module/bdev/nvme/bdev_ocssd.c b/module/bdev/nvme/bdev_ocssd.c index 0a106ae49..e231d5632 100644 --- a/module/bdev/nvme/bdev_ocssd.c +++ b/module/bdev/nvme/bdev_ocssd.c @@ -924,7 +924,7 @@ bdev_ocssd_free_namespace(struct nvme_bdev_ns *nvme_ns) free(nvme_ns->type_ctx); nvme_ns->type_ctx = NULL; - nvme_ctrlr_depopulate_namespace_done(nvme_ns->ctrlr); + nvme_ctrlr_depopulate_namespace_done(nvme_ns); } static void diff --git a/module/bdev/nvme/common.h b/module/bdev/nvme/common.h index 3b9efce41..61a483a61 100644 --- a/module/bdev/nvme/common.h +++ b/module/bdev/nvme/common.h @@ -155,7 +155,7 @@ struct nvme_io_channel { void nvme_ctrlr_populate_namespace_done(struct nvme_async_probe_ctx *ctx, struct nvme_bdev_ns *nvme_ns, int rc); -void nvme_ctrlr_depopulate_namespace_done(struct nvme_bdev_ctrlr *nvme_bdev_ctrlr); +void nvme_ctrlr_depopulate_namespace_done(struct nvme_bdev_ns *nvme_ns); struct nvme_bdev_ctrlr *nvme_bdev_ctrlr_get(const struct spdk_nvme_transport_id *trid); struct nvme_bdev_ctrlr *nvme_bdev_ctrlr_get_by_name(const char *name); diff --git a/test/unit/lib/bdev/bdev_ocssd.c/bdev_ocssd_ut.c b/test/unit/lib/bdev/bdev_ocssd.c/bdev_ocssd_ut.c index d8dc3207a..1be28238a 100644 --- a/test/unit/lib/bdev/bdev_ocssd.c/bdev_ocssd_ut.c +++ b/test/unit/lib/bdev/bdev_ocssd.c/bdev_ocssd_ut.c @@ -195,8 +195,10 @@ nvme_ctrlr_populate_namespace_done(struct nvme_async_probe_ctx *ctx, } void -nvme_ctrlr_depopulate_namespace_done(struct nvme_bdev_ctrlr *ctrlr) +nvme_ctrlr_depopulate_namespace_done(struct nvme_bdev_ns *ns) { + struct nvme_bdev_ctrlr *ctrlr = ns->ctrlr; + CU_ASSERT(ctrlr->ref > 0); ctrlr->ref--;