This series implements the spec changes in a counterpart NBD series,
and has been tested to be interoperable with libnbd implementing the
same spec. I'm not too happy with the RFC patch at the end, but
implemented it for discussion. Given the release timing, this would
be qemu 8.0 material if we are happy with the direction the spec is
headed in.
Eric Blake (15):
nbd/client: Add safety check on chunk payload length
nbd/server: Prepare for alternate-size headers
nbd: Prepare for 64-bit request effect lengths
nbd: Add types for extended headers
nbd/server: Refactor handling of request payload
nbd/server: Refactor to pass full request around
nbd/server: Initial support for extended headers
nbd/server: Support 64-bit block status
nbd/client: Initial support for extended headers
nbd/client: Accept 64-bit block status chunks
nbd/client: Request extended headers during negotiation
nbd/server: Prepare for per-request filtering of BLOCK_STATUS
nbd/server: Add FLAG_PAYLOAD support to CMD_BLOCK_STATUS
RFC: nbd/client: Accept 64-bit hole chunks
RFC: nbd/server: Send 64-bit hole chunk
docs/interop/nbd.txt | 1 +
include/block/nbd.h | 163 +++--
nbd/nbd-internal.h | 8 +-
block/nbd.c | 102 ++-
nbd/client-connection.c | 1 +
nbd/client.c | 132 +++-
nbd/common.c | 14 +-
nbd/server.c | 636 +++++++++++++-----
qemu-nbd.c | 3 +
block/trace-events | 1 +
nbd/trace-events | 11 +-
tests/qemu-iotests/223.out | 18 +-
tests/qemu-iotests/233.out | 5 +
tests/qemu-iotests/241.out | 3 +
tests/qemu-iotests/307.out | 15 +-
.../tests/nbd-qemu-allocation.out | 3 +-
16 files changed, 797 insertions(+), 319 deletions(-)
--
2.38.1