+2
−1
Loading
If an I/O fails during the write zeroes fallback to write on a split I/O, the previous code would call spdk_bdev_io_complete() again on the same I/O, causing infinite recursion. Fix this by restoring the original user callback before completing the I/O, as well as using _spdk_bdev_io_complete() rather than spdk_bdev_io_complete() to avoid double-counting the statistics. This also preserves the original bdev_io->status code set by the module, rather than always setting it to SPDK_BDEV_IO_STATUS_FAILED. Change-Id: Ib71fa6e54eed3d5823652971f7c439e0ff236fc1 Signed-off-by:Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-on: https://review.gerrithub.io/383506 Reviewed-by:
Seth Howell <seth.howell5141@gmail.com> Tested-by:
SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by:
Changpeng Liu <changpeng.liu@intel.com> Reviewed-by:
Ziye Yang <optimistyzy@gmail.com>