summaryrefslogtreecommitdiffstats
path: root/blockdev-nbd.c
diff options
context:
space:
mode:
authorEric Blake2022-05-12 02:49:23 +0200
committerKevin Wolf2022-05-12 13:10:52 +0200
commita5fced40212ed73c715ca298a2929dd4d99c9999 (patch)
treecb41db6786ba8c64477d3b697ceb3326b0ce0150 /blockdev-nbd.c
parenttests/qtest/fdc-test: Add a regression test for CVE-2021-3507 (diff)
downloadqemu-a5fced40212ed73c715ca298a2929dd4d99c9999.tar.gz
qemu-a5fced40212ed73c715ca298a2929dd4d99c9999.tar.xz
qemu-a5fced40212ed73c715ca298a2929dd4d99c9999.zip
qemu-nbd: Pass max connections to blockdev layer
The next patch wants to adjust whether the NBD server code advertises MULTI_CONN based on whether it is known if the server limits to exactly one client. For a server started by QMP, this information is obtained through nbd_server_start (which can support more than one export); but for qemu-nbd (which supports exactly one export), it is controlled only by the command-line option -e/--shared. Since we already have a hook function used by qemu-nbd, it's easiest to just alter its signature to fit our needs. Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <20220512004924.417153-2-eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'blockdev-nbd.c')
-rw-r--r--blockdev-nbd.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/blockdev-nbd.c b/blockdev-nbd.c
index 7f6531cba0..711e0e72bd 100644
--- a/blockdev-nbd.c
+++ b/blockdev-nbd.c
@@ -30,18 +30,18 @@ typedef struct NBDServerData {
} NBDServerData;
static NBDServerData *nbd_server;
-static bool is_qemu_nbd;
+static int qemu_nbd_connections = -1; /* Non-negative if this is qemu-nbd */
static void nbd_update_server_watch(NBDServerData *s);
-void nbd_server_is_qemu_nbd(bool value)
+void nbd_server_is_qemu_nbd(int max_connections)
{
- is_qemu_nbd = value;
+ qemu_nbd_connections = max_connections;
}
bool nbd_server_is_running(void)
{
- return nbd_server || is_qemu_nbd;
+ return nbd_server || qemu_nbd_connections >= 0;
}
static void nbd_blockdev_client_closed(NBDClient *client, bool ignored)