RFC: https://lists.nongnu.org/archive/html/qemu-block/2023-03/msg00446.html
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 -- 2.39.1