Commit a083dd99 authored by Fedor Uporov's avatar Fedor Uporov Committed by Jim Harris
Browse files

bdev/aio: fix error handling around aio_readv()/aio_writev()



Return -errno instead of direct system calls return values on FreeBSD side.
This logic was conflicted with Linux io_submit() return values handling.

Change-Id: I8d04ee09933aadaf5278136b90128723cc92873a
Signed-off-by: default avatarFedor Uporov <fuporov.vstack@gmail.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/26161


Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz@tzawadzki.com>
parent 48166bcb
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -174,6 +174,7 @@ bdev_aio_submit_io(enum spdk_bdev_io_type type, struct file_disk *fdisk,
{
	struct aiocb *aiocb = &aio_task->aiocb;
	struct bdev_aio_io_channel *aio_ch = spdk_io_channel_get_ctx(ch);
	int rc;

	memset(aiocb, 0, sizeof(struct aiocb));
	aiocb->aio_fildes = fdisk->fd;
@@ -188,10 +189,16 @@ bdev_aio_submit_io(enum spdk_bdev_io_type type, struct file_disk *fdisk,
	aio_task->ch = aio_ch;

	if (type == SPDK_BDEV_IO_TYPE_READ) {
		return aio_readv(aiocb);
		rc = aio_readv(aiocb);
	} else {
		rc = aio_writev(aiocb);
	}

	return aio_writev(aiocb);
	if (spdk_unlikely(rc < 0)) {
		return -errno;
	}

	return rc;
}
#else
static int