Spdk/module/bdev/nvme
Shuhei Matsumoto d22497a72c bdev/nvme: Process pending destruct ctrlr request by adding an new variable
The recent refactoring removed the destruct poller and change the
reset processing to destruct ctrlr after its completion by conditionally
sending message.

But differentiating callback function is difficult if we reset multiple
ctrlrs.

If nvme_bdev_ctrlr->destruct is set, any new reset cannot start. So we can
use an new variable and always execute the callback function.

Add an new variable pending_destruct to struct nvme_bdev_ctrlr, and set
pending_destruct if ctrlr->ref is zero and ctrlr->destruct is true, and
then start destruct ctrlr if ctrlr->destruct_after_reset is set after
clearing pending resets.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I9f34c42a40c5a5da54611e7871aef8c58117a56a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6714
Community-CI: Broadcom CI
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
2021-03-22 09:45:53 +00:00
..
bdev_nvme_cuse_rpc.c lib/jsonrpc: Add a new API to send response for writing bool result. 2020-11-16 15:08:47 +00:00
bdev_nvme_rpc.c bdev/nvme: Merge bdev_nvme_remove_trid() into bdev_nvme_delete() 2021-03-12 08:20:46 +00:00
bdev_nvme.c bdev/nvme: Process pending destruct ctrlr request by adding an new variable 2021-03-22 09:45:53 +00:00
bdev_nvme.h bdev/nvme: Merge bdev_nvme_remove_trid() into bdev_nvme_delete() 2021-03-12 08:20:46 +00:00
bdev_ocssd_rpc.c bdev/ocssd: Remove range parameter from bdev_ocssd_create RPC 2021-02-19 11:28:53 +00:00
bdev_ocssd.c bdev/ocssd: Get spdk_nvme_ctrlr from not nvme_bdev_ctrlr but spdk_nvme_ns in I/O paths 2021-03-22 09:45:53 +00:00
bdev_ocssd.h bdev/ocssd: Remove range from struct ocssd_bdev 2021-02-24 13:01:44 +00:00
common.c bdev/nvme: Add mutex per nvme_bdev_ctrlr 2021-03-12 08:20:46 +00:00
common.h bdev/nvme: Process pending destruct ctrlr request by adding an new variable 2021-03-22 09:45:53 +00:00
Makefile so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme_rpc.c bdev/nvme: Fix the RPC bdev_nvme_send_cmd to pass the registered io_device, nvme_bdev_ctrlr, correctly to get io_channel 2021-03-18 14:41:13 +00:00
vbdev_opal_rpc.c lib/jsonrpc: Add a new API to send response for writing bool result. 2020-11-16 15:08:47 +00:00
vbdev_opal.c module/bdev/nvme: improve portability 2021-02-25 10:25:20 +00:00
vbdev_opal.h module/bdev_nvme: remove spdk prefix from static/internal functions. 2020-05-15 07:58:03 +00:00