While we would prefer that block drivers use coroutines instead of aio callbacks, it is a fairly easy exercise to prove that all existing drivers with aio callbacks are merely scaling from bytes into sectors and back to bytes. So, even though I am not set up to completely run (or even compile-test) this full series, it seems pretty straightforward to change the signature to quit playing games with pointless scaling.
Note that except for the null-aio driver, I intentionally did NOT try and change the request_alignment from the block layer's default of 512 (it defaults to 1 only for drivers that use coroutines). (And along the way, I got my docker-test-mingw@fedora working; thanks to the help I got on IRC) Eric Blake (6): block: Support byte-based aio callbacks file-win32: Switch to byte-based callbacks null: Switch to byte-based read/write rbd: Switch to byte-based callbacks vxhs: Switch to byte-based callbacks block: Drop last of the sector-based aio callbacks include/block/block_int.h | 8 +++--- include/block/raw-aio.h | 2 +- block/io.c | 26 ++++++++++++------- block/file-win32.c | 36 +++++++++++++------------- block/null.c | 66 ++++++++++++++++++++++++++--------------------- block/rbd.c | 36 ++++++++++++-------------- block/vxhs.c | 36 +++++++++++--------------- block/win32-aio.c | 5 ++-- 8 files changed, 109 insertions(+), 106 deletions(-) -- 2.14.3