On 06.04.2016 20:28, Max Reitz wrote: > Turns out NBD is not so simple to do if you do it right. Anyway, this > series adds blockdev-add support for NBD clients. > > Patch 1 adds a QDict function which I needed in later NBD patches for > handling legacy options (move "host" to "address.data.host" etc.). > > Patches 2, 3, 4, and 5 are minor patches with no functional relation to > this series, other than later patches will touch the code they touch, > too. > > Patches 6 and 7 prepare the code for the addition of a new option > prefix, which is "address.". > > Patch 8 makes the NBD client accept a SocketAddress under the "address" > option (or rather, a flattened SocketAddress QDict with its keys > prefixed by "address."). The old options "host", "port", and "path" are > supported as legacy options and translated to the respective > SocketAddress representation. > > Patch 9 drops usage of "host", "port", and "path" outside of > nbd_has_filename_options_conflict(), > nbd_process_legacy_socket_options(), and nbd_refresh_filename(), making > those options nothing but legacy. > > Patch 10, the goal of this series, is again not very complicated. > > Patches 11, 12, and 13 are required for the iotest added in patch 16. It > will invoke qemu-nbd, so patch 13 is required. Besides qemu-nbd, it will > launch an NBD server VM concurrently to the client VM, which is why > patch 14 is required. And finally, it will test whether we can add an > NBD BDS by passing it a file descriptor, which patch 15 is needed for > (so we use the socket_scm_helper to pass sockets to qemu). > > Patch 14 then adds the iotest for NBD's blockdev-add interface. > > > *** This series requires Daniel's qdict_crumple() function (from his > "Provide a QOM-based authorization API" series). *** > > > v2: > - Dropped patches 2 and 3; use Daniel's qdict_crumple() instead. > - Patch 7: Not sure why the diff differs, seems functionally like the > same patch to me. Maybe git changed something about its default diff > algorithm. > - Patch 8: Use qdict_crumple() instead of qdict_unflatten() > - Patch 10: Rebase conflicts
Ping
signature.asc
Description: OpenPGP digital signature