As the RBD bdev module does, the upper layer wants the reset command to abort or complete all I/Os submitted before the reset command. To satisfy this requirement, return all aborted I/Os by deleting I/O qpairs to the upper layer without retry. To return all aborted I/Os by deleting I/O qpairs, enable DNR for I/O qpairs. These I/O qpairs are deleted and recreated. Hence, we do not have to disable DNR. No more I/O comes at a reset I/O because the generic bdev layer already blocks I/O submission. However, some I/Os may be queued for retry even after deleting I/O qpairs. Hence, abort all queued I/Os for the bdev before completing the reset I/O. Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I9830026ef5f2b9c28aee92e6ce4018ed8541c808 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16836 Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> |
||
---|---|---|
.. | ||
accel | ||
bdev | ||
blob | ||
blobfs | ||
env_dpdk | ||
event | ||
scheduler | ||
sock | ||
vfu_device | ||
Makefile |