diff --git a/module/bdev/nvme/bdev_nvme.c b/module/bdev/nvme/bdev_nvme.c index 4eb949544..e1eb31e8d 100644 --- a/module/bdev/nvme/bdev_nvme.c +++ b/module/bdev/nvme/bdev_nvme.c @@ -1539,8 +1539,6 @@ nvme_ctrlr_depopulate_standard_namespace(struct nvme_bdev_ns *nvme_ns) spdk_bdev_unregister(&bdev->disk, NULL, NULL); } - nvme_ns->populated = false; - nvme_ctrlr_depopulate_namespace_done(nvme_ns); } diff --git a/module/bdev/nvme/bdev_ocssd.c b/module/bdev/nvme/bdev_ocssd.c index bb227e348..54952f1d4 100644 --- a/module/bdev/nvme/bdev_ocssd.c +++ b/module/bdev/nvme/bdev_ocssd.c @@ -906,8 +906,6 @@ bdev_ocssd_free_namespace(struct nvme_bdev_ns *nvme_ns) free(nvme_ns->type_ctx); nvme_ns->type_ctx = NULL; - nvme_ns->populated = false; - nvme_ctrlr_depopulate_namespace_done(nvme_ns); } diff --git a/module/bdev/nvme/common.c b/module/bdev/nvme/common.c index ee4e3bf16..eceeaa692 100644 --- a/module/bdev/nvme/common.c +++ b/module/bdev/nvme/common.c @@ -194,6 +194,9 @@ nvme_ctrlr_depopulate_namespace_done(struct nvme_bdev_ns *nvme_ns) assert(nvme_bdev_ctrlr != NULL); pthread_mutex_lock(&nvme_bdev_ctrlr->mutex); + + nvme_ns->populated = false; + assert(nvme_ns->ref > 0); nvme_ns->ref--; if (nvme_ns->ref > 0) {