This series depends on "[PATCH] block/mirror: limit qiov to IOV_MAX elements".
IOV_MAX has been hardcoded in several places since preadv()/pwritev()/etc refuse to take more iovecs per call. That's actually an implementation detail of raw-posix and we shouldn't spread that across the codebase. This series adds BlockLimits.max_iov (similar to BlockLimits.max_transfer_len and other fields). By default it is INT_MAX but raw-posix sets it to IOV_MAX. Current IOV_MAX users are converted to blk_get_max_iov(). By the way, the IOV_MAX vs BlockLimits.max_iov naming is slightly confusing but follows the BlockLimits field naming convention. Once IOV_MAX is banished no one will be bothered by the reverse naming anymore. Suggested-by: Kevin Wolf <kw...@redhat.com> Stefan Hajnoczi (4): block: add BlockLimits.max_iov field block-backend: add blk_get_max_iov() block: replace IOV_MAX with BlockLimits.max_iov block/mirror: replace IOV_MAX with blk_get_max_iov() block/block-backend.c | 5 +++++ block/io.c | 6 +++++- block/mirror.c | 6 ++++-- block/raw-posix.c | 1 + hw/block/virtio-blk.c | 2 +- include/block/block_int.h | 3 +++ include/sysemu/block-backend.h | 1 + 7 files changed, 20 insertions(+), 4 deletions(-) -- 2.4.3