Re: [PATCH v3 2/2] qemu-nbd: Permit --shared=0 for unlimited clients
On Tue, Feb 9, 2021 at 5:28 PM Eric Blake wrote: > > This gives us better feature parity with QMP nbd-server-start, where > max-connections defaults to 0 for unlimited. Sound useful > Signed-off-by: Eric Blake > --- > docs/tools/qemu-nbd.rst | 4 ++-- > qemu-nbd.c | 7 +++ > 2 files changed, 5 insertions(+), 6 deletions(-) > > diff --git a/docs/tools/qemu-nbd.rst b/docs/tools/qemu-nbd.rst > index fe41336dc550..ee862fa0bc02 100644 > --- a/docs/tools/qemu-nbd.rst > +++ b/docs/tools/qemu-nbd.rst > @@ -136,8 +136,8 @@ driver options if ``--image-opts`` is specified. > .. option:: -e, --shared=NUM > >Allow up to *NUM* clients to share the device (default > - ``1``). Safe for readers, but for now, consistency is not > - guaranteed between multiple writers. > + ``1``), 0 for unlimited. Safe for readers, but for now, > + consistency is not guaranteed between multiple writers. > > .. option:: -t, --persistent > > diff --git a/qemu-nbd.c b/qemu-nbd.c > index 1a340ea4858d..5416509ece18 100644 > --- a/qemu-nbd.c > +++ b/qemu-nbd.c > @@ -328,7 +328,7 @@ static void *nbd_client_thread(void *arg) > > static int nbd_can_accept(void) > { > -return state == RUNNING && nb_fds < shared; > +return state == RUNNING && (shared == 0 || nb_fds < shared); > } > > static void nbd_update_server_watch(void); > @@ -706,8 +706,8 @@ int main(int argc, char **argv) > device = optarg; > break; > case 'e': > if (qemu_strtoi(optarg, NULL, 0, ) < 0 || > -shared < 1) { > +shared < 0) { > error_report("Invalid shared device number '%s'", optarg); > exit(EXIT_FAILURE); > } > @@ -966,7 +965,7 @@ int main(int argc, char **argv) > if (socket_activation == 0) { > int backlog; > > -if (persistent) { > +if (persistent || shared == 0) { > backlog = SOMAXCONN; > } else { > backlog = MIN(shared, SOMAXCONN); > -- > 2.30.0 > Reviewed-by: Nir Soffer
Re: [PATCH v3 2/2] qemu-nbd: Permit --shared=0 for unlimited clients
On Tue, Feb 09, 2021 at 09:27:59AM -0600, Eric Blake wrote: > This gives us better feature parity with QMP nbd-server-start, where > max-connections defaults to 0 for unlimited. > > Signed-off-by: Eric Blake > --- > docs/tools/qemu-nbd.rst | 4 ++-- > qemu-nbd.c | 7 +++ > 2 files changed, 5 insertions(+), 6 deletions(-) Reviewed-by: Daniel P. Berrangé Regards, Daniel -- |: https://berrange.com -o-https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o-https://fstop138.berrange.com :| |: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|
[PATCH v3 2/2] qemu-nbd: Permit --shared=0 for unlimited clients
This gives us better feature parity with QMP nbd-server-start, where max-connections defaults to 0 for unlimited. Signed-off-by: Eric Blake --- docs/tools/qemu-nbd.rst | 4 ++-- qemu-nbd.c | 7 +++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/docs/tools/qemu-nbd.rst b/docs/tools/qemu-nbd.rst index fe41336dc550..ee862fa0bc02 100644 --- a/docs/tools/qemu-nbd.rst +++ b/docs/tools/qemu-nbd.rst @@ -136,8 +136,8 @@ driver options if ``--image-opts`` is specified. .. option:: -e, --shared=NUM Allow up to *NUM* clients to share the device (default - ``1``). Safe for readers, but for now, consistency is not - guaranteed between multiple writers. + ``1``), 0 for unlimited. Safe for readers, but for now, + consistency is not guaranteed between multiple writers. .. option:: -t, --persistent diff --git a/qemu-nbd.c b/qemu-nbd.c index 1a340ea4858d..5416509ece18 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -328,7 +328,7 @@ static void *nbd_client_thread(void *arg) static int nbd_can_accept(void) { -return state == RUNNING && nb_fds < shared; +return state == RUNNING && (shared == 0 || nb_fds < shared); } static void nbd_update_server_watch(void); @@ -706,8 +706,8 @@ int main(int argc, char **argv) device = optarg; break; case 'e': if (qemu_strtoi(optarg, NULL, 0, ) < 0 || -shared < 1) { +shared < 0) { error_report("Invalid shared device number '%s'", optarg); exit(EXIT_FAILURE); } @@ -966,7 +965,7 @@ int main(int argc, char **argv) if (socket_activation == 0) { int backlog; -if (persistent) { +if (persistent || shared == 0) { backlog = SOMAXCONN; } else { backlog = MIN(shared, SOMAXCONN); -- 2.30.0