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> |
||
---|---|---|
.. | ||
accel | ||
bdev | ||
blob | ||
blobfs | ||
env_dpdk | ||
event | ||
scheduler | ||
sock | ||
Makefile |