Previous series have already converted some block drivers to byte-based rather than sector-based interfaces. However, the common I/O path as well as raw-posix still enforced a minimum alignment of 512 bytes because some sector-based logic was involved.
This patch series removes these limitations and a sub-sector request actually ends up as a sub-sector syscall now. v2: - Updated trace-events for bdrv_co_do_copy_on_readv() [Eric] - Added some assertions [Eric] - Renamed laio_submit_co() -> laio_co_submit() and added coroutine_fn to its prototype [Stefan] - linux-aio: Include block/block.h and use BDRV_SECTOR_SIZE instead of 512 [Eric] Kevin Wolf (6): block: Byte-based bdrv_co_do_copy_on_readv() block: Prepare bdrv_aligned_preadv() for byte-aligned requests block: Prepare bdrv_aligned_pwritev() for byte-aligned requests raw-posix: Switch to bdrv_co_* interfaces raw-posix: Implement .bdrv_co_preadv/pwritev block: Don't enforce 512 byte minimum alignment block.c | 2 +- block/io.c | 128 ++++++++++++++++++++++++++------------------------ block/linux-aio.c | 84 ++++++++++++++++++++++++--------- block/mirror.c | 10 ++-- block/raw-aio.h | 3 ++ block/raw-posix.c | 62 ++++++++++++------------ include/block/block.h | 10 ++-- trace-events | 2 +- 8 files changed, 176 insertions(+), 125 deletions(-) -- 1.8.3.1