Commit f20fbfe6 authored by Konrad Sztyber's avatar Konrad Sztyber Committed by Jim Harris
Browse files

bdev: move pulling md_buf to a function



Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I935983a14bedc386ffe31abacc8fa200cd79f750
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17675


Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 72a6fff8
Loading
Loading
Loading
Loading
+18 −10
Original line number Diff line number Diff line
@@ -1051,18 +1051,10 @@ _bdev_io_pull_buffer_cpl(void *ctx, int rc)
}

static void
_bdev_io_pull_bounce_md_buf(struct spdk_bdev_io *bdev_io, void *md_buf, size_t len)
bdev_io_pull_md_buf(struct spdk_bdev_io *bdev_io)
{
	int rc = 0;

	/* save original md_buf */
	bdev_io->internal.orig_md_iov.iov_base = bdev_io->u.bdev.md_buf;
	bdev_io->internal.orig_md_iov.iov_len = len;
	bdev_io->internal.bounce_md_iov.iov_base = md_buf;
	bdev_io->internal.bounce_md_iov.iov_len = len;
	/* set bounce md_buf */
	bdev_io->u.bdev.md_buf = md_buf;

	if (bdev_io->type == SPDK_BDEV_IO_TYPE_WRITE) {
		if (bdev_io_use_memory_domain(bdev_io)) {
			rc = spdk_memory_domain_pull_data(bdev_io->internal.memory_domain,
@@ -1078,7 +1070,9 @@ _bdev_io_pull_bounce_md_buf(struct spdk_bdev_io *bdev_io, void *md_buf, size_t l
			SPDK_ERRLOG("Failed to pull data from memory domain %s, rc %d\n",
				    spdk_memory_domain_get_dma_device_id(bdev_io->internal.memory_domain), rc);
		} else {
			memcpy(md_buf, bdev_io->internal.orig_md_iov.iov_base, bdev_io->internal.orig_md_iov.iov_len);
			memcpy(bdev_io->internal.bounce_md_iov.iov_base,
			       bdev_io->internal.orig_md_iov.iov_base,
			       bdev_io->internal.orig_md_iov.iov_len);
		}
	}

@@ -1086,6 +1080,20 @@ _bdev_io_pull_bounce_md_buf(struct spdk_bdev_io *bdev_io, void *md_buf, size_t l
	bdev_io->internal.data_transfer_cpl(bdev_io, rc);
}

static void
_bdev_io_pull_bounce_md_buf(struct spdk_bdev_io *bdev_io, void *md_buf, size_t len)
{
	/* save original md_buf */
	bdev_io->internal.orig_md_iov.iov_base = bdev_io->u.bdev.md_buf;
	bdev_io->internal.orig_md_iov.iov_len = len;
	bdev_io->internal.bounce_md_iov.iov_base = md_buf;
	bdev_io->internal.bounce_md_iov.iov_len = len;
	/* set bounce md_buf */
	bdev_io->u.bdev.md_buf = md_buf;

	bdev_io_pull_md_buf(bdev_io);
}

static void
_bdev_io_set_md_buf(struct spdk_bdev_io *bdev_io)
{