From 55eb9617cfe2e4506f2c47c6cbea9ccbe2f7e7ac Mon Sep 17 00:00:00 2001 From: Andrey Kuzmin Date: Mon, 23 Apr 2018 18:27:12 +0300 Subject: [PATCH] bdev/aio: Fix EAGAIN handling. To test, build and run bdevperf against an arbitrary aio device with queue depth of 512 or more. Change-Id: I800a9ea529af9de22fddf50e1dafeefa2244122d Signed-off-by: Andrey Kuzmin Reviewed-on: https://review.gerrithub.io/408709 Reviewed-by: Daniel Verkamp Tested-by: SPDK Automated Test System Reviewed-by: Jim Harris --- lib/bdev/aio/bdev_aio.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/bdev/aio/bdev_aio.c b/lib/bdev/aio/bdev_aio.c index eca7091b0..be10d3f11 100644 --- a/lib/bdev/aio/bdev_aio.c +++ b/lib/bdev/aio/bdev_aio.c @@ -131,12 +131,12 @@ bdev_aio_readv(struct file_disk *fdisk, struct spdk_io_channel *ch, rc = io_submit(aio_ch->io_ctx, 1, &iocb); if (rc < 0) { - if (rc == EAGAIN) { + if (rc == -EAGAIN) { spdk_bdev_io_complete(spdk_bdev_io_from_ctx(aio_task), SPDK_BDEV_IO_STATUS_NOMEM); } else { spdk_bdev_io_complete(spdk_bdev_io_from_ctx(aio_task), SPDK_BDEV_IO_STATUS_FAILED); + SPDK_ERRLOG("%s: io_submit returned %d\n", __func__, rc); } - SPDK_ERRLOG("%s: io_submit returned %d\n", __func__, rc); return -1; } aio_ch->io_inflight++; @@ -161,12 +161,12 @@ bdev_aio_writev(struct file_disk *fdisk, struct spdk_io_channel *ch, rc = io_submit(aio_ch->io_ctx, 1, &iocb); if (rc < 0) { - if (rc == EAGAIN) { + if (rc == -EAGAIN) { spdk_bdev_io_complete(spdk_bdev_io_from_ctx(aio_task), SPDK_BDEV_IO_STATUS_NOMEM); } else { spdk_bdev_io_complete(spdk_bdev_io_from_ctx(aio_task), SPDK_BDEV_IO_STATUS_FAILED); + SPDK_ERRLOG("%s: io_submit returned %d\n", __func__, rc); } - SPDK_ERRLOG("%s: io_submit returned %d\n", __func__, rc); return -1; } aio_ch->io_inflight++;