bdev/part: Add copy IO type support
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com> Change-Id: I9e2dcf29794fdb9535a4f0282b3046602f09188e Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14385 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> Community-CI: Mellanox Build Bot
This commit is contained in:
parent
789f48dec7
commit
a383a15fb1
@ -272,7 +272,7 @@ spdk_bdev_part_submit_request(struct spdk_bdev_part_channel *ch, struct spdk_bde
|
|||||||
struct spdk_bdev_part *part = ch->part;
|
struct spdk_bdev_part *part = ch->part;
|
||||||
struct spdk_io_channel *base_ch = ch->base_ch;
|
struct spdk_io_channel *base_ch = ch->base_ch;
|
||||||
struct spdk_bdev_desc *base_desc = part->internal.base->desc;
|
struct spdk_bdev_desc *base_desc = part->internal.base->desc;
|
||||||
uint64_t offset, remapped_offset;
|
uint64_t offset, remapped_offset, remapped_src_offset;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
offset = bdev_io->u.bdev.offset_blocks;
|
offset = bdev_io->u.bdev.offset_blocks;
|
||||||
@ -368,6 +368,12 @@ spdk_bdev_part_submit_request(struct spdk_bdev_part_channel *ch, struct spdk_bde
|
|||||||
bdev_io->u.bdev.num_blocks,
|
bdev_io->u.bdev.num_blocks,
|
||||||
bdev_part_complete_io, bdev_io);
|
bdev_part_complete_io, bdev_io);
|
||||||
break;
|
break;
|
||||||
|
case SPDK_BDEV_IO_TYPE_COPY:
|
||||||
|
remapped_src_offset = bdev_io->u.bdev.copy.src_offset_blocks + part->internal.offset_blocks;
|
||||||
|
rc = spdk_bdev_copy_blocks(base_desc, base_ch, remapped_offset, remapped_src_offset,
|
||||||
|
bdev_io->u.bdev.num_blocks, bdev_part_complete_io,
|
||||||
|
bdev_io);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
SPDK_ERRLOG("unknown I/O type %d\n", bdev_io->type);
|
SPDK_ERRLOG("unknown I/O type %d\n", bdev_io->type);
|
||||||
return SPDK_BDEV_IO_STATUS_FAILED;
|
return SPDK_BDEV_IO_STATUS_FAILED;
|
||||||
|
Loading…
Reference in New Issue
Block a user