[Qemu-devel] [PATCH 1/3] nbd/server: Advertise all contexts in response to bare LIST

Eric Blake posted 3 patches 7 years, 2 months ago
[Qemu-devel] [PATCH 1/3] nbd/server: Advertise all contexts in response to bare LIST
Posted by Eric Blake 7 years, 2 months ago
The NBD spec, and even our code comment, says that if the client
asks for NBD_OPT_LIST_META_CONTEXT with 0 queries, then we should
reply with (a possibly-compressed representation of) ALL contexts
that we are willing to let them try.  But commit 3d068aff forgot
to advertise qemu:dirty-bitmap:FOO.

Signed-off-by: Eric Blake <eblake@redhat.com>
---
 nbd/server.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/nbd/server.c b/nbd/server.c
index dc04513de70..7af0ddffb20 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -978,6 +978,7 @@ static int nbd_negotiate_meta_queries(NBDClient *client,
     if (client->opt == NBD_OPT_LIST_META_CONTEXT && !nb_queries) {
         /* enable all known contexts */
         meta->base_allocation = true;
+        meta->bitmap = !!meta->exp->export_bitmap;
     } else {
         for (i = 0; i < nb_queries; ++i) {
             ret = nbd_negotiate_meta_query(client, meta, errp);
-- 
2.17.2


Re: [Qemu-devel] [PATCH 1/3] nbd/server: Advertise all contexts in response to bare LIST
Posted by Vladimir Sementsov-Ogievskiy 7 years, 2 months ago
30.11.2018 5:32, Eric Blake wrote:
> The NBD spec, and even our code comment, says that if the client
> asks for NBD_OPT_LIST_META_CONTEXT with 0 queries, then we should
> reply with (a possibly-compressed representation of) ALL contexts
> that we are willing to let them try.  But commit 3d068aff forgot
> to advertise qemu:dirty-bitmap:FOO.
> 
> Signed-off-by: Eric Blake <eblake@redhat.com>

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

> ---
>   nbd/server.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/nbd/server.c b/nbd/server.c
> index dc04513de70..7af0ddffb20 100644
> --- a/nbd/server.c
> +++ b/nbd/server.c
> @@ -978,6 +978,7 @@ static int nbd_negotiate_meta_queries(NBDClient *client,
>       if (client->opt == NBD_OPT_LIST_META_CONTEXT && !nb_queries) {
>           /* enable all known contexts */
>           meta->base_allocation = true;
> +        meta->bitmap = !!meta->exp->export_bitmap;
>       } else {
>           for (i = 0; i < nb_queries; ++i) {
>               ret = nbd_negotiate_meta_query(client, meta, errp);
> 


-- 
Best regards,
Vladimir