Commit 01de2cfa authored by Marcin Pytel's avatar Marcin Pytel Committed by Jim Harris
Browse files

bdev: propagate error from split bdev_io to parent_io



Also overwrite the parent io failure status by child io status

Change-Id: I2aa8c0dd2af691323e15d5a365f29ed53ff43bf5
Signed-off-by: default avatarMarcin Pytel <marcin.pytel@solidigm.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26485


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarChangpeng Liu <changpeliu@tencent.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
parent 4835514d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -3571,7 +3571,8 @@ bdev_io_split_done(struct spdk_bdev_io *bdev_io, bool success, void *cb_arg)
	assert(parent_io->internal.f.split);

	if (!success) {
		parent_io->internal.status = SPDK_BDEV_IO_STATUS_FAILED;
		parent_io->internal.status = bdev_io->internal.status;
		parent_io->internal.error = bdev_io->internal.error;
		/* If any child I/O failed, stop further splitting process. */
		parent_io->internal.split.current_offset_blocks += parent_io->internal.split.remaining_num_blocks;
		parent_io->internal.split.remaining_num_blocks = 0;