Spdk/module/bdev
Shuhei Matsumoto 9ddaadf2a5 bdev/nvme: Retry admin passthru a second later if any ctrlr may become available
When resetting ctrlr, adminq is disconnected first. If adminq is disconnected,
admin passthrough request is rejected with -ENXIO.

But resetting ctrlr may succeed. If resetting ctrlr succeeds, adminq is
connected again, and admin passthrough request will be
submitted successfully.

On the other hand, if ctrlr is failed, admin passthrough request is
rejected with -ENXIO. But when resetting ctrlr, ctrlr is set to unfailed.

Hence bdev_nvme_admin_passthru() skips any ctrlr which is resetting
or failed, and calls bdev_nvme_admin_passthru_complete() with -ENXIO
if no available ctrlr is found.

bdev_nvme_admin_passthru_complete() queues admin passthrough request
and retry it one second later if ctrlr is resetting.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Ic748dc4faf29ebf717ae5c29dcf7c55fe2ea9243
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9942
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
2022-06-30 13:32:28 -04:00
..
aio bdev/aio: return void from bdev_aio_readv/writev 2021-09-02 07:42:31 +00:00
compress compress: Add RPC option to enable mlx5_pci PMD 2021-08-16 08:48:31 +00:00
crypto modules/crypto: remove dependency on rte_cryptodev_pmd.h 2022-06-30 13:32:25 -04:00
delay vbdev_delay: fix wrong usage of spdk_for_each_channel() 2022-06-30 13:32:27 -04:00
error bdev/error: properly initialize value of num for inject_error RPC 2021-04-15 21:41:05 +00:00
ftl so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
gpt lib/bdev: move to spdk_bdev_part_base_construct_ext() 2021-03-09 08:54:53 +00:00
iscsi bdev/iscsi: unregister conn poller when idle 2022-06-30 13:32:25 -04:00
longhorn Cleanup log messages. 2022-04-05 17:41:49 -04:00
lvol bdev/lvol: asserting lvol ptr before dereference 2021-08-24 07:18:54 +00:00
malloc bdev/malloc: Add optimal IO boundary 2022-06-30 13:32:28 -04:00
null lib/bdev: added spdk_bdev_module_fini_done() 2021-08-23 08:49:56 +00:00
nvme bdev/nvme: Retry admin passthru a second later if any ctrlr may become available 2022-06-30 13:32:28 -04:00
ocf bdev/ocf: Set defaults for OCF devices 2022-06-30 13:32:26 -04:00
passthru bdev: Add API to get SPDK memory domains used by bdev 2021-08-20 07:26:10 +00:00
pmem lib/bdev: added spdk_bdev_module_fini_done() 2021-08-23 08:49:56 +00:00
raid bdev/raid: remove deprecated parameter strip_size 2021-03-29 07:41:09 +00:00
rbd bdev/rbd:Add uuid to bdev_rbd_create to support multipath when rbd used as ns of nvmf target 2022-06-30 13:32:26 -04:00
split splite/vbdev_split: Free base part bdev on the error path. 2021-03-02 08:02:58 +00:00
uring so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
virtio lib/bdev: added spdk_bdev_module_fini_done() 2021-08-23 08:49:56 +00:00
zone_block bdev/zone_block: check for unmap support in zone reset 2021-08-12 12:57:24 +00:00
Makefile Initial changes. 2022-02-08 15:51:30 -05:00