lib/ftl: use scatter/gather write commands

This will allow the requests to be built from non-consecutive write
buffer entries.

Change-Id: Ifbb26c47ea1f3175e6529dba4b89350de92efe8e
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/899
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Wojciech Malikowski <wojciech.malikowski@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Maciej Szczepaniak <maciej.szczepaniak@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Konrad Sztyber 2020-01-22 13:03:11 +01:00 committed by Tomasz Zawadzki
parent f4e42560b4
commit acc88da2c5

View File

@ -1592,15 +1592,14 @@ ftl_submit_child_write(struct ftl_wptr *wptr, struct ftl_io *io)
wptr->num_outstanding++;
if (ftl_is_append_supported(dev)) {
rc = spdk_bdev_zone_append(dev->base_bdev_desc, ioch->base_ioch,
ftl_io_iovec_addr(child),
ftl_addr_get_zone_slba(dev, addr),
dev->xfer_size, ftl_io_cmpl_cb, child);
} else {
rc = spdk_bdev_write_blocks(dev->base_bdev_desc, ioch->base_ioch,
ftl_io_iovec_addr(child),
addr.offset,
rc = spdk_bdev_zone_appendv(dev->base_bdev_desc, ioch->base_ioch,
child->iov, child->iov_cnt,
ftl_addr_get_zone_slba(dev, addr),
dev->xfer_size, ftl_io_cmpl_cb, child);
} else {
rc = spdk_bdev_writev_blocks(dev->base_bdev_desc, ioch->base_ioch,
child->iov, child->iov_cnt, addr.offset,
dev->xfer_size, ftl_io_cmpl_cb, child);
}
if (rc) {