Hi, Short reads and writes can happen. One way to reproduce them is via FUSE export, if you force it to limit the request length in the read/write path (patch in the commit messages of patches 2 and 3), but specifically short writes apparently can also happen with NFS.
For the file-posix block driver, aio=threads already takes care of them. aio=native does not, at all, and aio=io_uring only handles short reads, but not writes. This series has both aio=native and aio=io_uring handle both short reads and writes. zone-append is not touched, as I don’t believe resubmitting the tail (if a short append can even happen) is safe. Hanna Czenczek (3): linux-aio: Put all parameters into qemu_laiocb linux-aio: Resubmit tails of short reads/writes io-uring: Resubmit tails of short writes block/io_uring.c | 83 ++++++++++++++++++++++----------------- block/linux-aio.c | 96 ++++++++++++++++++++++++++++++++++++---------- block/trace-events | 2 +- 3 files changed, 123 insertions(+), 58 deletions(-) -- 2.53.0
