raid0: io metadata support
Signed-off-by: Krzysztof Smolinski <krzysztof.smolinski@intel.com> Change-Id: Ia2519cd2726f82328cde3d5db2eb323d2a975219 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15128 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
This commit is contained in:
parent
8f424ed8f6
commit
a289f081dd
@ -104,15 +104,31 @@ raid0_submit_rw_request(struct raid_bdev_io *raid_io)
|
||||
assert(raid_ch->base_channel);
|
||||
base_ch = raid_ch->base_channel[pd_idx];
|
||||
if (bdev_io->type == SPDK_BDEV_IO_TYPE_READ) {
|
||||
ret = spdk_bdev_readv_blocks_ext(base_info->desc, base_ch,
|
||||
bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
|
||||
pd_lba, pd_blocks, raid0_bdev_io_completion,
|
||||
raid_io, bdev_io->u.bdev.ext_opts);
|
||||
if (bdev_io->u.bdev.ext_opts != NULL) {
|
||||
ret = spdk_bdev_readv_blocks_ext(base_info->desc, base_ch,
|
||||
bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
|
||||
pd_lba, pd_blocks, raid0_bdev_io_completion,
|
||||
raid_io, bdev_io->u.bdev.ext_opts);
|
||||
} else {
|
||||
ret = spdk_bdev_readv_blocks_with_md(base_info->desc, base_ch,
|
||||
bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
|
||||
bdev_io->u.bdev.md_buf,
|
||||
pd_lba, pd_blocks,
|
||||
raid0_bdev_io_completion, raid_io);
|
||||
}
|
||||
} else if (bdev_io->type == SPDK_BDEV_IO_TYPE_WRITE) {
|
||||
ret = spdk_bdev_writev_blocks_ext(base_info->desc, base_ch,
|
||||
bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
|
||||
pd_lba, pd_blocks, raid0_bdev_io_completion,
|
||||
raid_io, bdev_io->u.bdev.ext_opts);
|
||||
if (bdev_io->u.bdev.ext_opts != NULL) {
|
||||
ret = spdk_bdev_writev_blocks_ext(base_info->desc, base_ch,
|
||||
bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
|
||||
pd_lba, pd_blocks, raid0_bdev_io_completion,
|
||||
raid_io, bdev_io->u.bdev.ext_opts);
|
||||
} else {
|
||||
ret = spdk_bdev_writev_blocks_with_md(base_info->desc, base_ch,
|
||||
bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt,
|
||||
bdev_io->u.bdev.md_buf,
|
||||
pd_lba, pd_blocks,
|
||||
raid0_bdev_io_completion, raid_io);
|
||||
}
|
||||
} else {
|
||||
SPDK_ERRLOG("Recvd not supported io type %u\n", bdev_io->type);
|
||||
assert(0);
|
||||
|
@ -297,6 +297,15 @@ spdk_bdev_writev_blocks_ext(struct spdk_bdev_desc *desc, struct spdk_io_channel
|
||||
return spdk_bdev_writev_blocks(desc, ch, iov, iovcnt, offset_blocks, num_blocks, cb, cb_arg);
|
||||
}
|
||||
|
||||
int
|
||||
spdk_bdev_writev_blocks_with_md(struct spdk_bdev_desc *desc, struct spdk_io_channel *ch,
|
||||
struct iovec *iov, int iovcnt, void *md,
|
||||
uint64_t offset_blocks, uint64_t num_blocks,
|
||||
spdk_bdev_io_completion_cb cb, void *cb_arg)
|
||||
{
|
||||
return spdk_bdev_writev_blocks(desc, ch, iov, iovcnt, offset_blocks, num_blocks, cb, cb_arg);
|
||||
}
|
||||
|
||||
int
|
||||
spdk_bdev_reset(struct spdk_bdev_desc *desc, struct spdk_io_channel *ch,
|
||||
spdk_bdev_io_completion_cb cb, void *cb_arg)
|
||||
@ -480,6 +489,16 @@ spdk_bdev_readv_blocks_ext(struct spdk_bdev_desc *desc, struct spdk_io_channel *
|
||||
return spdk_bdev_readv_blocks(desc, ch, iov, iovcnt, offset_blocks, num_blocks, cb, cb_arg);
|
||||
}
|
||||
|
||||
int
|
||||
spdk_bdev_readv_blocks_with_md(struct spdk_bdev_desc *desc, struct spdk_io_channel *ch,
|
||||
struct iovec *iov, int iovcnt, void *md,
|
||||
uint64_t offset_blocks, uint64_t num_blocks,
|
||||
spdk_bdev_io_completion_cb cb, void *cb_arg)
|
||||
{
|
||||
return spdk_bdev_readv_blocks(desc, ch, iov, iovcnt, offset_blocks, num_blocks, cb, cb_arg);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
spdk_bdev_module_release_bdev(struct spdk_bdev *bdev)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user