[Libguestfs] [nbdkit PATCH] cow: Always advertise multi-conn

Richard W.M. Jones rjones at redhat.com
Fri Feb 19 19:37:50 UTC 2021


On Fri, Feb 19, 2021 at 09:18:56AM -0600, Eric Blake wrote:
> Our cow data is locked for proper sharing across connections, so even
> though NBD_CMD_FLUSH is an intentional no-op, a client is guaranteed
> that after a flush by connection A, a read by connection B will not
> see any stale data, which matches the requirements for always
> advertising multi-conn.
> ---
>  filters/cow/cow.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/filters/cow/cow.c b/filters/cow/cow.c
> index 93e10f24..1085ee36 100644
> --- a/filters/cow/cow.c
> +++ b/filters/cow/cow.c
> @@ -181,6 +181,14 @@ cow_can_cache (struct nbdkit_next_ops *next_ops, void *nxdata, void *handle)
>    return NBDKIT_CACHE_NATIVE;
>  }
> 
> +static int
> +cow_can_multi_conn (struct nbdkit_next_ops *next_ops, void *nxdata,
> +                    void *handle)
> +{
> +  /* Our cache is consistent between connections.  */
> +  return 1;
> +}
> +
>  /* Override the plugin's .can_fast_zero, because our .zero is not fast */
>  static int
>  cow_can_fast_zero (struct nbdkit_next_ops *next_ops, void *nxdata,
> @@ -712,6 +720,7 @@ static struct nbdkit_filter filter = {
>    .can_fua           = cow_can_fua,
>    .can_cache         = cow_can_cache,
>    .can_fast_zero     = cow_can_fast_zero,
> +  .can_multi_conn    = cow_can_multi_conn,
>    .pread             = cow_pread,
>    .pwrite            = cow_pwrite,
>    .zero              = cow_zero,
> -- 

ACK

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/




More information about the Libguestfs mailing list