Spdk/test/unit/lib/bdev
Jim Harris 1f935c7a9b bdev: properly handle aborted resets
Previously, we naively assumed that a completed
reset was the reset in progress, and would
unilaterally set reset_in_progres to false.

So change reset_in_progress to a bdev_io pointer
instead.  If this is not NULL, a reset is not in
progress.  Then when a reset completes, we only
set the reset_in_progress pointer to NULL if we
are completing the reset that is in progress.

We also were not aborting queued resets when
destroying a channel so that is fixed here too.

The added unit test covers both fixes above - it will
submit two resets on a different channels, then destroy
the second channel.  This will abort the second reset
and check that the bdev still sees the first reset as in
progress.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I61df677cfa272c589ca03cb81753f71b0807a182

Reviewed-on: https://review.gerrithub.io/378199
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-09-22 15:38:44 -04:00
..
bdev.c test/bdev: initialize descriptor array in open_write_test 2017-09-19 17:15:15 -04:00
gpt test/bdev/gpt: link spdk_util for CRC32 function 2017-08-15 15:24:29 -04:00
mt bdev: properly handle aborted resets 2017-09-22 15:38:44 -04:00
scsi_nvme.c test: move SCSI/NVMe translation test to test/unit 2017-06-20 13:46:07 -04:00
vbdev_lvol.c lvol: Logical volume implementation 2017-09-14 19:30:54 -04:00
Makefile test/bdev: add simulated multi-thread unit tests 2017-09-22 15:38:44 -04:00