diff options
author | Eric Blake | 2021-02-09 16:27:59 +0100 |
---|---|---|
committer | Eric Blake | 2021-02-12 14:42:08 +0100 |
commit | 3dcf56e625c684178c0062d845f9fe05ecce346f (patch) | |
tree | d117ef75bc8369503536b489a207e04fd22ad0dc | |
parent | qemu-nbd: Use SOMAXCONN for socket listen() backlog (diff) | |
download | qemu-3dcf56e625c684178c0062d845f9fe05ecce346f.tar.gz qemu-3dcf56e625c684178c0062d845f9fe05ecce346f.tar.xz qemu-3dcf56e625c684178c0062d845f9fe05ecce346f.zip |
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>
-rw-r--r-- | docs/tools/qemu-nbd.rst | 4 | ||||
-rw-r--r-- | qemu-nbd.c | 6 |
2 files changed, 5 insertions, 5 deletions
diff --git a/docs/tools/qemu-nbd.rst b/docs/tools/qemu-nbd.rst index fe41336dc5..ee862fa0bc 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 1a340ea485..b1b9430a8f 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); @@ -707,7 +707,7 @@ int main(int argc, char **argv) break; case 'e': if (qemu_strtoi(optarg, NULL, 0, &shared) < 0 || - shared < 1) { + shared < 0) { error_report("Invalid shared device number '%s'", optarg); exit(EXIT_FAILURE); } @@ -966,7 +966,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); |