bdev: move pulling md_buf to a function
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com> Change-Id: I935983a14bedc386ffe31abacc8fa200cd79f750 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17675 Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
72a6fff8bb
commit
f20fbfe65b
@ -1051,18 +1051,10 @@ _bdev_io_pull_buffer_cpl(void *ctx, int rc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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;
|
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->type == SPDK_BDEV_IO_TYPE_WRITE) {
|
||||||
if (bdev_io_use_memory_domain(bdev_io)) {
|
if (bdev_io_use_memory_domain(bdev_io)) {
|
||||||
rc = spdk_memory_domain_pull_data(bdev_io->internal.memory_domain,
|
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_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);
|
spdk_memory_domain_get_dma_device_id(bdev_io->internal.memory_domain), rc);
|
||||||
} else {
|
} 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);
|
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
|
static void
|
||||||
_bdev_io_set_md_buf(struct spdk_bdev_io *bdev_io)
|
_bdev_io_set_md_buf(struct spdk_bdev_io *bdev_io)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user