>From the block layer's perspective, the nbd server is pretty similar to a guest device. Therefore, it should use BlockBackend to access block devices, just like any other guest device does.
This series consequently makes the nbd server use BlockBackend for referencing block devices. v2: - Added patch 6, which converts qemu-nbd to BlockBackend as far as reasonable [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/6:[----] [--] 'block: Lift more functions into BlockBackend' 002/6:[----] [--] 'block: Add AioContextNotifier functions to BB' 003/6:[----] [--] 'block: Add blk_add_close_notifier() for BB' 004/6:[----] [--] 'nbd: Change external interface to BlockBackend' 005/6:[----] [--] 'nbd: Use BlockBackend internally' 006/6:[down] 'qemu-nbd: Use BlockBackend where reasonable' Max Reitz (6): block: Lift more functions into BlockBackend block: Add AioContextNotifier functions to BB block: Add blk_add_close_notifier() for BB nbd: Change external interface to BlockBackend nbd: Use BlockBackend internally qemu-nbd: Use BlockBackend where reasonable block/block-backend.c | 38 +++++++++++++++++++++++++ blockdev-nbd.c | 15 +++++----- include/block/nbd.h | 7 ++--- include/sysemu/block-backend.h | 12 ++++++++ nbd.c | 63 +++++++++++++++++++++--------------------- qemu-nbd.c | 12 ++++---- 6 files changed, 99 insertions(+), 48 deletions(-) -- 1.9.3