[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 00/22] block/export: Add infrastructure and QAPI for block ex
From: |
Kevin Wolf |
Subject: |
[RFC PATCH 00/22] block/export: Add infrastructure and QAPI for block exports |
Date: |
Thu, 13 Aug 2020 18:29:13 +0200 |
We are planning to add more block export types than just NBD in the near
future (e.g. vhost-user-blk and FUSE). This series lays the ground for
this with some generic block export infrastructure and QAPI interfaces
that will allow managing all of them (for now add/remove/query).
As a side effect, qemu-storage-daemon can now map --export directly to
the block-export-add QMP command, similar to other command line options.
The built-in NBD servers also gains new options that bring it at least a
little closer to feature parity with qemu-nbd.
This series is still RFC because the patches aren't very polished
(though they also shouldn't be too bad), it's not completely clear if
more features should be moved from NBD to the BlockExport layer in this
series (or maybe even less, and the rest dealt with in a separate
series) and qemu-iotests cases for the new interfaces are still missing.
Kevin Wolf (22):
nbd: Remove unused nbd_export_get_blockdev()
qapi: Create block-export module
qapi: Rename BlockExport to BlockExportOptions
block/export: Add BlockExport infrastructure and block-export-add
qemu-storage-daemon: Use qmp_block_export_add()
qemu-nbd: Use raw block driver for --offset
block/export: Remove magic from block-export-add
nbd: Add max-connections to nbd-server-start
nbd: Add writethrough to block-export-add
nbd: Remove NBDExport.close callback
qemu-nbd: Use blk_exp_add() to create the export
nbd/server: Simplify export shutdown
block/export: Move refcount from NBDExport to BlockExport
block/export: Move AioContext from NBDExport to BlockExport
block/export: Move device to BlockExportOptions
block/export: Allocate BlockExport in blk_exp_add()
block/export: Add blk_exp_close_all(_type)
block/export: Add 'id' option to block-export-add
block/export: Move strong user reference to block_exports
block/export: Add block-export-del
block/export: Move blk to BlockExport
block/export: Add query-block-exports
qapi/block-core.json | 166 ---------------
qapi/block-export.json | 261 +++++++++++++++++++++++
qapi/qapi-schema.json | 1 +
include/block/export.h | 73 +++++++
include/block/nbd.h | 25 +--
block.c | 2 +-
block/export/export.c | 297 +++++++++++++++++++++++++++
block/monitor/block-hmp-cmds.c | 11 +-
blockdev-nbd.c | 124 +++++------
nbd/server.c | 243 +++++++++-------------
qemu-nbd.c | 67 +++---
qemu-storage-daemon.c | 25 +--
Makefile.objs | 6 +-
block/Makefile.objs | 2 +
block/export/Makefile.objs | 1 +
qapi/Makefile.objs | 5 +-
storage-daemon/qapi/qapi-schema.json | 1 +
17 files changed, 857 insertions(+), 453 deletions(-)
create mode 100644 qapi/block-export.json
create mode 100644 include/block/export.h
create mode 100644 block/export/export.c
create mode 100644 block/export/Makefile.objs
--
2.25.4
- [RFC PATCH 00/22] block/export: Add infrastructure and QAPI for block exports,
Kevin Wolf <=