Spdk/lib/bdev
paul luse 7f6738e12d crypto: add proper reset handling
Previously there was no consideration for IO that were outstanding
to the crypto device when handling a reset.  This patch makes sure
that those IO are completed with FAIL status prior to completing
the reset that we pass down the stack.

It does so by sending down the reset first and in the completion
using spdk_for_each_channel and the poller to quiesce each channel
allowing the crypto side to complete all IOs before we finally
complete the reset IO after the last channel is quiesced.

Resets are tracked on a per bdev basis.

Addresses github issue #449.

Change-Id: Iadb07bada1fcaad33d9f224a60d983a7eb835236
Signed-off-by: paul luse <paul.e.luse@intel.com>
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/428552
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Seth Howell <seth.howell5141@gmail.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2018-10-26 17:55:51 +00:00
..
aio Make: Add deps for each shared obj individually 2018-10-09 21:45:26 +00:00
crypto crypto: add proper reset handling 2018-10-26 17:55:51 +00:00
error bdev_split: add support for bdev_io_wait when no memory to submit 2018-10-04 23:27:13 +00:00
gpt gpt: add support for bdev_io_wait when no memory 2018-10-09 23:17:32 +00:00
iscsi doc/bdev: document iSCSI bdev module 2018-10-18 22:02:48 +00:00
lvol vbdev_lvol: set optimal_io_boundary to cluster size 2018-10-15 17:29:30 +00:00
malloc Make: Add deps for each shared obj individually 2018-10-09 21:45:26 +00:00
null thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
nvme scripts/rpc.py: add method "get_nvme_controllers" 2018-10-25 17:26:25 +00:00
passthru vbdev_passthru: add support for bdev_io_wait 2018-09-25 17:56:39 +00:00
pmem thread: Add a name parameter to spdk_register_io_device 2018-09-05 16:00:54 +00:00
raid bdev/raid: raid_bdev_remove_base_bdev: cleanup not registered raid bdev 2018-10-15 21:49:46 +00:00
rbd bdev/rbd: fix error handling after failed rados_connect 2018-10-25 17:27:14 +00:00
rpc QoS/Bdev: add the RPC support for the bandwidth rate limit 2018-10-09 18:26:44 +00:00
split bdev_split: add support for bdev_io_wait when no memory to submit 2018-10-04 23:27:13 +00:00
virtio bdev/virtio: deprecate remove_virtio_scsi_bdev RPC 2018-10-18 22:02:48 +00:00
bdev.c lib/bdev: reset bdev internal properties 2018-10-12 22:50:02 +00:00
Makefile CONFIG: add missing CONFIG_ options 2018-10-04 21:31:42 +00:00
part.c bdev_split: add support for bdev_io_wait when no memory to submit 2018-10-04 23:27:13 +00:00
scsi_nvme.c bdev: move error union to internal spdk_bdev_io struct 2018-06-26 20:04:07 +00:00
vtune.c mk: don't use '-include spdk/config.h' 2018-10-02 23:13:32 +00:00