Thanks for the feedback on the RFC! Sounds like we agree that this is
the right way to fix the bug.
Here in v1, I’ve followed Vladimir’s suggestion to inline the
functionality of qemu_iovec_init_extended() in block/io.c, which, I
think (hope), also addresses much of the feedback of Eric and Stefan.
The test is unchanged, the rest is pretty much rewritten (though in
spirit stays the same).
Hanna Czenczek (4):
util/iov: Make qiov_slice() public
block: Split padded I/O vectors exceeding IOV_MAX
util/iov: Remove qemu_iovec_init_extended()
iotests/iov-padding: New test
include/qemu/iov.h | 8 +-
block/io.c | 153 +++++++++++++++++++++--
util/iov.c | 89 +++----------
tests/qemu-iotests/tests/iov-padding | 85 +++++++++++++
tests/qemu-iotests/tests/iov-padding.out | 59 +++++++++
5 files changed, 306 insertions(+), 88 deletions(-)
create mode 100755 tests/qemu-iotests/tests/iov-padding
create mode 100644 tests/qemu-iotests/tests/iov-padding.out