[PATCH] nbd/server: Allow LIST_META_CONTEXT without STRUCTURED_REPLY

Eric Blake posted 1 patch 2 years, 7 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210907173505.1499709-1-eblake@redhat.com
Maintainers: Eric Blake <eblake@redhat.com>, Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
nbd/server.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] nbd/server: Allow LIST_META_CONTEXT without STRUCTURED_REPLY
Posted by Eric Blake 2 years, 7 months ago
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>
---
 nbd/server.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nbd/server.c b/nbd/server.c
index 1646796a4798..bd635cf8ffd1 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -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",
-- 
2.31.1


Re: [PATCH] nbd/server: Allow LIST_META_CONTEXT without STRUCTURED_REPLY
Posted by Vladimir Sementsov-Ogievskiy 2 years, 7 months ago
07.09.2021 20:35, Eric Blake wrote:
> 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>

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

-- 
Best regards,
Vladimir

Re: [PATCH] nbd/server: Allow LIST_META_CONTEXT without STRUCTURED_REPLY
Posted by Eric Blake 2 years, 6 months ago
On Tue, Sep 14, 2021 at 05:19:42PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> 07.09.2021 20:35, Eric Blake wrote:
> > 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>
> 
> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

Thanks; queuing this one through my NBD tree.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org