[Libguestfs] [libnbd PATCH v2 06/12] info: Explicitly skip NBD_OPT_SET_META_CONTEXT in --list mode
Laszlo Ersek
lersek at redhat.com
Fri Sep 9 04:55:50 UTC 2022
On 08/31/22 16:39, Eric Blake wrote:
> When listing information about an export, we do not use
> nbd_block_status() or nbd_can_meta_context(), because we were already
> utilizing the callback to nbd_opt_list_meta_context() to collect
> supported context names. In practice, because we also never called
> nbd_add_meta_context() (important because nbd_opt_list_meta_context()
> only outputs all possible contexts when passed an empty list on
> input), we were not causing nbd_opt_info() to invoke
> NBD_OPT_SET_META_CONTEXT (SET on an empty list selects nothing, so the
> state machine short-circuits that step). However, now that we have
> the API to express our intentions, we might as well be explicit that
> we don't need the server to set any contexts, even if such a change
> does not impact the amount of traffic sent over the wire in list mode.
> ---
> info/list.c | 3 ++-
> info/show.c | 3 ++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/info/list.c b/info/list.c
> index 7646bf1..c2741ba 100644
> --- a/info/list.c
> +++ b/info/list.c
> @@ -1,5 +1,5 @@
> /* NBD client library in userspace
> - * Copyright (C) 2020-2021 Red Hat Inc.
> + * Copyright (C) 2020-2022 Red Hat Inc.
> *
> * This library is free software; you can redistribute it and/or
> * modify it under the terms of the GNU Lesser General Public
> @@ -104,6 +104,7 @@ list_all_exports (void)
> }
> nbd_set_uri_allow_local_file (nbd2, true); /* Allow ?tls-psk-file. */
> nbd_set_opt_mode (nbd2, true);
> + nbd_set_request_meta_context (nbd2, false);
> nbd_set_full_info (nbd2, true);
>
> do_connect (nbd2);
> diff --git a/info/show.c b/info/show.c
> index 79038b0..4bf5967 100644
> --- a/info/show.c
> +++ b/info/show.c
> @@ -1,5 +1,5 @@
> /* NBD client library in userspace
> - * Copyright (C) 2020-2021 Red Hat Inc.
> + * Copyright (C) 2020-2022 Red Hat Inc.
> *
> * This library is free software; you can redistribute it and/or
> * modify it under the terms of the GNU Lesser General Public
> @@ -65,6 +65,7 @@ show_one_export (struct nbd_handle *nbd, const char *desc,
> * advertising something it later refuses to serve), return rather
> * than exit, to allow output on the rest of the list.
> */
> + nbd_set_request_meta_context (nbd, false);
> if (nbd_aio_is_negotiating (nbd) &&
> nbd_opt_info (nbd) == -1 &&
> nbd_opt_go (nbd) == -1) {
>
Acked-by: Laszlo Ersek <lersek at redhat.com>
More information about the Libguestfs
mailing list