1) In submit_single_io(), if an I/O fails to submit,
we need to free the associated task structure,
otherwise it gets leaked.
2) When draining I/O, just always check_io() instead
of only doing it when current_queue_depth > 0.
This is the simplest of ensuring that we cleanup
the ns_ctx (including freeing the IO qpairs and
the qpair pointer array) if the current_queue_depth
is already 0 when starting to drain.
Fixes issue #2995.
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I53f336c6a11ff63782dc81c087a58feca0e8a5d7
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17873
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>