diff --git a/lib/bdev/part.c b/lib/bdev/part.c index 1922e89e0..2141bc85d 100644 --- a/lib/bdev/part.c +++ b/lib/bdev/part.c @@ -320,11 +320,12 @@ spdk_bdev_part_submit_request(struct spdk_bdev_part_channel *ch, struct spdk_bde /* Modify the I/O to adjust for the offset within the base bdev. */ switch (bdev_io->type) { case SPDK_BDEV_IO_TYPE_READ: - if (bdev_io->u.bdev.md_buf == NULL) { - rc = spdk_bdev_readv_blocks(base_desc, base_ch, bdev_io->u.bdev.iovs, - bdev_io->u.bdev.iovcnt, remapped_offset, - bdev_io->u.bdev.num_blocks, - bdev_part_complete_read_io, bdev_io); + if (bdev_io->u.bdev.ext_opts || !bdev_io->u.bdev.md_buf) { + rc = spdk_bdev_readv_blocks_ext(base_desc, base_ch, bdev_io->u.bdev.iovs, + bdev_io->u.bdev.iovcnt, remapped_offset, + bdev_io->u.bdev.num_blocks, + bdev_part_complete_read_io, bdev_io, + bdev_io->u.bdev.ext_opts); } else { rc = spdk_bdev_readv_blocks_with_md(base_desc, base_ch, bdev_io->u.bdev.iovs, @@ -340,11 +341,12 @@ spdk_bdev_part_submit_request(struct spdk_bdev_part_channel *ch, struct spdk_bde return SPDK_BDEV_IO_STATUS_FAILED; } - if (bdev_io->u.bdev.md_buf == NULL) { - rc = spdk_bdev_writev_blocks(base_desc, base_ch, bdev_io->u.bdev.iovs, - bdev_io->u.bdev.iovcnt, remapped_offset, - bdev_io->u.bdev.num_blocks, - bdev_part_complete_io, bdev_io); + if (bdev_io->u.bdev.ext_opts || !bdev_io->u.bdev.md_buf) { + rc = spdk_bdev_writev_blocks_ext(base_desc, base_ch, bdev_io->u.bdev.iovs, + bdev_io->u.bdev.iovcnt, remapped_offset, + bdev_io->u.bdev.num_blocks, + bdev_part_complete_io, bdev_io, + bdev_io->u.bdev.ext_opts); } else { rc = spdk_bdev_writev_blocks_with_md(base_desc, base_ch, bdev_io->u.bdev.iovs,