Spdk/module
Shuhei Matsumoto 2826ef13ce bdev/nvme: Fail reset sequence immediately if ctrlr is already removed.
After a controller was hot-removed, if a reset sequence started to
the controller, spdk_nvme_ctrlr_disconnect() failed and caused core
dump in debug mode.

When implemented, how to cause the failure and how to process the
failure were not clear. Hence assert was added to detect the
failure.

We know how we cause the failure now. Let's handle the failure
appropriately.

If spdk_nvme_ctrlr_disconnect() fails, we are on the nvme_ctrlr->thread.
Hence call bdev_nvme_reset_complete() with failure immediately.

Even if spdk_nvme_ctrlr_disconnect() completes synchronously, the
completion callback is executed asynchronously when polling an adminq.

Hence set the completion callback only if spdk_nvme_ctrlr_disconnect()
succeeds.

Fixes issue #2632

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I11f61853aba9eca2515592f964a291e59def7247
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13892
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-21 07:52:44 +00:00
..
accel accel: Rename spdk_accel_engine_module_finish to 2022-09-06 07:16:17 +00:00
bdev bdev/nvme: Fail reset sequence immediately if ctrlr is already removed. 2022-09-21 07:52:44 +00:00
blob blob: Optimize copy-on-write flow for clusters backed by zeroes device 2022-09-05 12:49:46 +00:00
blobfs Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
env_dpdk Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
event accel: Do not refer to the "framework" as "engine" 2022-09-06 07:16:17 +00:00
scheduler lib/event: do not set default scheduling period during init 2022-06-20 09:56:09 +00:00
sock sock/ssl: free SSL resources in case of failures 2022-09-16 13:33:17 +00:00
Makefile Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00