]> git.proxmox.com Git - mirror_qemu.git/commitdiff
nbd/server: Allow LIST_META_CONTEXT without STRUCTURED_REPLY
authorEric Blake <eblake@redhat.com>
Tue, 7 Sep 2021 17:35:05 +0000 (12:35 -0500)
committerEric Blake <eblake@redhat.com>
Wed, 29 Sep 2021 18:46:32 +0000 (13:46 -0500)
The NBD protocol just relaxed the requirements on
NBD_OPT_LIST_META_CONTEXT:

https://github.com/NetworkBlockDevice/nbd/commit/13a4e33a87

Since listing is not stateful (unlike SET_META_CONTEXT), we don't care
if a client asks for meta contexts without first requesting structured
replies.  Well-behaved clients will still ask for structured reply
first (if for no other reason than for back-compat to older servers),
but that's no reason to avoid this change.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20210907173505.1499709-1-eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
nbd/server.c

index 3927f7789dcfcb048d6d7021af2818c545acae3b..6d03e8a4b436548bb3ac177a530f85389a859965 100644 (file)
@@ -980,7 +980,7 @@ static int nbd_negotiate_meta_queries(NBDClient *client,
     size_t i;
     size_t count = 0;
 
-    if (!client->structured_reply) {
+    if (client->opt == NBD_OPT_SET_META_CONTEXT && !client->structured_reply) {
         return nbd_opt_invalid(client, errp,
                                "request option '%s' when structured reply "
                                "is not negotiated",