Commit 8cfa8ac4 authored by Artur Paszkiewicz's avatar Artur Paszkiewicz Committed by Tomasz Zawadzki
Browse files

bdev: retry nomem_io in _bdev_io_complete_push_bounce_done



Bdev IO completions going through the push bounce path would not trigger
nomem_io retries.

Fixes #3076

Change-Id: I647c0e4abf3f5f768f99c7ad0eb4ff1fc97633d4
Signed-off-by: default avatarArtur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/19232


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent 8787d6c6
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1514,6 +1514,7 @@ static void
_bdev_io_complete_push_bounce_done(void *ctx, int rc)
{
	struct spdk_bdev_io *bdev_io = ctx;
	struct spdk_bdev_channel *ch = bdev_io->internal.ch;

	if (rc) {
		bdev_io->internal.status = SPDK_BDEV_IO_STATUS_FAILED;
@@ -1523,6 +1524,10 @@ _bdev_io_complete_push_bounce_done(void *ctx, int rc)
	 */
	bdev_io_put_buf(bdev_io);

	if (spdk_unlikely(!TAILQ_EMPTY(&ch->shared_resource->nomem_io))) {
		bdev_ch_retry_io(ch);
	}

	/* Continue with IO completion flow */
	bdev_io_complete(bdev_io);
}