On 01.03.2016 00:24, Eric Blake wrote: > On 02/29/2016 04:19 PM, 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. >> >> Patches 1 and 2 add one less and one more complicated QDict function, >> respectively, which I needed in later NBD patches: Patch 1 for handling >> legacy options (move "host" to "address.data.host" etc.) and patch 2 >> because I'd like to use the input visitor for transforming the NBD >> options into a SocketAddress. Unfortunately, the block layer uses >> flattened QDicts everywhere, so we'll have to unflatten (erect?) them >> before we can use that visitor. > > Dan had a patch proposal that called the operation "crumple"; I need to > review both proposals and see which one I like. > https://lists.gnu.org/archive/html/qemu-devel/2016-02/msg04618.html
Well, here I go again, not looking at patches on the list... Looking at the design, I like his idea of having an escape sequence; also, his qdict_crumple() can return boths lists and dicts where my qdict_unflatten() only returns dicts (then again, this is what qdict_flatten() always works on). And his patch doesn't suffer from as much indentation as mine does. What I like more about my patch, however, is that I'm reusing qdict_array_split() and qdict_array_entries(). That is mostly because my function modifies the given QDict, where Dan's does not. >> >> Patch 3 adds a test for qdict_unflatten(). >> >> Patches 4, 5, 6, and 7 are minor patches with no functional relation to >> this series, other than later patches will touch the code they touch, >> too. >> >> Patches 8 and 9 prepare the code for the addition of a new option >> prefix, which is "address.". >> >> Patch 10 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 11 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 12, the goal of this series, is again not very complicated. >> >> Patches 13, 14, and 15 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 16 then adds the iotest for NBD's blockdev-add interface. >> >> >> Note on the relation to v1: As you can see, most of this series is >> completely new. Patch 5 was patch 1 in v1, and the only thing that has >> changed is that I removed the full stop at the end of the error message; >> consequently I kept Eric's R-b. > > Looks like my review queue is getting longer because I (like several > other people) are trying to post last-minute series before soft freeze. So is mine. :-) Yes, during the last week I had to prioritize patches over reviewing. Max
signature.asc
Description: OpenPGP digital signature