For the NBD server to work with dataplane, it needs to correctly access the exported BDS. It makes the most sense to run both in the same AioContext, therefore this series implements methods for tracking a BDS's AioContext and makes NBD make use of this for keeping the clients connected to that BDS in the same AioContext.
This series differs from the RFC as follows: - The first patch for export_set_name() has been dropped. - nbd_can_read() has been dropped and all attempts on implementing the required functionality for aio_set_fd_handler() as well. This is now implemented directly in NBD by unregistering the read handler whenever NBD cannot read. - Renamed "AIO followers" to "AIO notifiers". I tested this patch as Stefan suggested, that is, created IO load in the guest with multiple dds from the block devices and then read from random addresses over NBD (two block devices and one NBD client per device). I didn't run into any problems and the NBD code indeed did attach and detach from the respective AIO contexts, so this time I'm more confident that it indeed does work. Max Reitz (3): nbd: Drop nbd_can_read() block: Add AIO context notifiers nbd: Follow the BDS' AIO context block.c | 56 ++++++++++++++++++++++++ include/block/block_int.h | 41 ++++++++++++++++++ nbd.c | 108 ++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 186 insertions(+), 19 deletions(-) -- 2.0.0