Upper layers are not supposed to put an I/O channel if there are still I/O outstanding. This should apply to resets as well. To better detect this case, do not remove the reset from the channel's queued_reset list until it is ready to be submitted to the bdev module. This ensures: 1) We can detect if a channel is put with a reset outstanding. 2) We do not access freed memory, when the channel is destroyed before the reset message can submit the reset I/O. 3) Abort the queued reset if a channel is destroyed. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I0c03eee8b3642155c19c2996e25955baac22d406 Reviewed-on: https://review.gerrithub.io/378198 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> |
||
---|---|---|
.. | ||
bdev.c | ||
Makefile |