On 8/16/19 5:47 AM, Vladimir Sementsov-Ogievskiy wrote: >>> +++ b/blockdev-nbd.c >>> @@ -189,7 +189,7 @@ void qmp_nbd_server_add(const char *device, bool has_name, const char *name, >>>       } >>> >>>       exp = nbd_export_new(bs, 0, len, name, NULL, bitmap, >>> -                         writable ? 0 : NBD_FLAG_READ_ONLY, >>> +                         writable ? 0 : NBD_FLAG_READ_ONLY, true, >> >> s/true/!writable ? > > Oh, I see, John already noticed this, it's checked in nbd_export_new anyway.. Still, since two reviewers have caught it, I'm fixing it :) >>> @@ -1486,6 +1486,8 @@ NBDExport *nbd_export_new(BlockDriverState *bs, uint64_t dev_offset, >>>       perm = BLK_PERM_CONSISTENT_READ; >>>       if ((nbdflags & NBD_FLAG_READ_ONLY) == 0) { >>>           perm |= BLK_PERM_WRITE; >>> +    } else if (shared) { >>> +        nbdflags |= NBD_FLAG_CAN_MULTI_CONN; > > For me it looks a bit strange: we already have nbdflags parameter for nbd_export_new(), why > to add a separate boolean to pass one of nbdflags flags? Because I want to get rid of the nbdflags in my next patch. > > Also, for qemu-nbd, shouldn't we allow -e only together with -r ? I'm reluctant to; it might break whatever existing user is okay exposing it (although such users are questionable, so maybe we can argue they were already broken). Maybe it's time to start a deprecation cycle? -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org