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 <eblake@redhat.com> Message-Id: <20210209152759.209074-3-eblake@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
582d4210eb
commit
3dcf56e625
@ -136,8 +136,8 @@ driver options if ``--image-opts`` is specified.
|
|||||||
.. option:: -e, --shared=NUM
|
.. option:: -e, --shared=NUM
|
||||||
|
|
||||||
Allow up to *NUM* clients to share the device (default
|
Allow up to *NUM* clients to share the device (default
|
||||||
``1``). Safe for readers, but for now, consistency is not
|
``1``), 0 for unlimited. Safe for readers, but for now,
|
||||||
guaranteed between multiple writers.
|
consistency is not guaranteed between multiple writers.
|
||||||
|
|
||||||
.. option:: -t, --persistent
|
.. option:: -t, --persistent
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ static void *nbd_client_thread(void *arg)
|
|||||||
|
|
||||||
static int nbd_can_accept(void)
|
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);
|
static void nbd_update_server_watch(void);
|
||||||
@ -707,7 +707,7 @@ int main(int argc, char **argv)
|
|||||||
break;
|
break;
|
||||||
case 'e':
|
case 'e':
|
||||||
if (qemu_strtoi(optarg, NULL, 0, &shared) < 0 ||
|
if (qemu_strtoi(optarg, NULL, 0, &shared) < 0 ||
|
||||||
shared < 1) {
|
shared < 0) {
|
||||||
error_report("Invalid shared device number '%s'", optarg);
|
error_report("Invalid shared device number '%s'", optarg);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
@ -966,7 +966,7 @@ int main(int argc, char **argv)
|
|||||||
if (socket_activation == 0) {
|
if (socket_activation == 0) {
|
||||||
int backlog;
|
int backlog;
|
||||||
|
|
||||||
if (persistent) {
|
if (persistent || shared == 0) {
|
||||||
backlog = SOMAXCONN;
|
backlog = SOMAXCONN;
|
||||||
} else {
|
} else {
|
||||||
backlog = MIN(shared, SOMAXCONN);
|
backlog = MIN(shared, SOMAXCONN);
|
||||||
|
Loading…
Reference in New Issue
Block a user