On Wed, Jan 25, 2017 at 04:48:27PM +0000, Alex Gartrell wrote: > On 1/25/17, 6:23 AM, "arndbergmann@xxxxxxxxx on behalf of Arnd Bergmann" <arndbergmann@xxxxxxxxx on behalf of arnd@xxxxxxxx> wrote: > > We have multiple established ways to deal with this kind of problem, the most > > common ones being a separate chardev as you propose, a sysfs interface and > > netlink. > > > > They all have their own set of problems, but the needs of nbd as a network > > storage interface seem most closely resemble what we have for other network > > related interfaces, where we typically use netlink to do the setup, see e.g. > > macvtap as an example for a network chardev interface. > > > > Can you have a look if that would solve your problem more nicely? > > FWIW, I'm the one consuming this nbd stuff at Facebook and bringing > netlink into this would be a huge pain for me. It's very weird to > need to pull sockets in and then drop back to ioctls from a design > perspective, and future consumers of this API would be sad as well. As who's been maintaining the official userspace nbd client for 15 years now, I have to concur. NBD has had an API that deals with /dev/nbdX since forever, adding other APIs to that just feels wrong. > This is compounded, I think, by the fact that the breadth of > functionality here doesn't really merit a shared library for everyone > to use -- could you imagine libnbdcontrol, which exposes a single > "get_next_device" function? Please no :) > If nbd were *all* netlink I think that that'd be fine, but you'd have > problems implementing the NBD_DOIT function in that fashion. So I'd > rather stick to the char device ioctl thing because it's more > consistent with the old NBD stuff as well as the loop device stuff. Indeed. -- < ron> I mean, the main *practical* problem with C++, is there's like a dozen people in the world who think they really understand all of its rules, and pretty much all of them are just lying to themselves too. -- #debian-devel, OFTC, 2016-02-12 -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html