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.
v2: - Patch 1: Drop NBDClient::restart_write; checking whether NBDClient::send_coroutine is not NULL suffices [Paolo] git-backport-diff against v1: Key: [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/3:[0005] [FC] 'nbd: Drop nbd_can_read()' 002/3:[----] [--] 'block: Add AIO context notifiers' 003/3:[----] [--] 'nbd: Follow the BDS' AIO context' 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 | 105 +++++++++++++++++++++++++++++++++++++--------- 3 files changed, 183 insertions(+), 19 deletions(-) -- 2.0.0