Commit 5c678b79 authored by Karl Bonde Torp's avatar Karl Bonde Torp Committed by Tomasz Zawadzki
Browse files

bdev_xnvme: split bdev_xnvme_get_buf_cb to _xnvme_submit_request



This is useful for cases like write zeroes that don't require a buffer.
These can now call _xnvme_submit_request() directly

Change-Id: Iad65c68ff0c4e39a6fccbc6a0e6622e10c90065b
Signed-off-by: default avatarKarl Bonde Torp <k.torp@samsung.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/20785


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
Community-CI: Mellanox Build Bot
parent 6f4fb6a5
Loading
Loading
Loading
Loading
+15 −7
Original line number Diff line number Diff line
@@ -127,7 +127,7 @@ bdev_xnvme_destruct(void *ctx)
}

static void
bdev_xnvme_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success)
_xnvme_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io)
{
	struct bdev_xnvme_task *xnvme_task = (struct bdev_xnvme_task *)bdev_io->driver_ctx;
	struct bdev_xnvme *xnvme = (struct bdev_xnvme *)bdev_io->bdev->ctxt;
@@ -135,12 +135,6 @@ bdev_xnvme_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io,
	struct xnvme_cmd_ctx *ctx = xnvme_queue_get_cmd_ctx(xnvme_ch->queue);
	int err;

	if (!success) {
		xnvme_queue_put_cmd_ctx(xnvme_ch->queue, ctx);
		spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
		return;
	}

	SPDK_DEBUGLOG(xnvme, "bdev_io : %p, iov_cnt : %d, bdev_xnvme_task : %p\n",
		      bdev_io, bdev_io->u.bdev.iovcnt, (struct bdev_xnvme_task *)bdev_io->driver_ctx);

@@ -200,6 +194,20 @@ bdev_xnvme_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io,
	}
}

static void
bdev_xnvme_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bool success)
{
	struct bdev_xnvme_io_channel *xnvme_ch = spdk_io_channel_get_ctx(ch);

	if (!success) {
		xnvme_queue_put_cmd_ctx(xnvme_ch->queue, xnvme_queue_get_cmd_ctx(xnvme_ch->queue));
		spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_FAILED);
		return;
	}

	_xnvme_submit_request(ch, bdev_io);
}

static void
bdev_xnvme_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io)
{