[Libguestfs] [nbdkit PATCH] RFC: noextents: Add extentmode=data config parameter
Richard W.M. Jones
rjones at redhat.com
Sat Feb 12 11:43:33 UTC 2022
On Tue, Feb 08, 2022 at 02:29:48PM -0600, Eric Blake wrote:
> On Tue, Feb 08, 2022 at 12:39:02PM +0100, Laszlo Ersek wrote:
> > (The same question applies to "plugin-args" in the synopsys, more or
> > less...)
>
> Hmm, we aren't always consistent, but I agree that it can be pruned
> without loss.
Yes, there's quite a lot of inconsistency across man pages. I've
tried to make the use of =item, B<>, C<>, I<>, F<> consistent as far
as possible, but there are many other things to fix. One day ...
> The code in server/ guarantees that we cannot call into a filter or
> plugin with an extents request that would read out of bounds; ie. on
> input, offset+count will never exceed what next->get_size() would tell
> us anyways. Conversely, nbdkit_add_extent() already permits us to
> pass in redundant information prior to offset (as long as we make
> forward progress by eventually using nbdkit_add_extent for at least
> one byte at offset before returning), as well as to provide more
> information than needed (the upper layer can set a clamp, such as when
> FLAG_REQ_ONE is in use by the client, or at the 32-bit boundary
> condition, where our additions beyond that clamp are merely ignored).
> So we could just as easily write
>
> return nbdkit_add_extent (ret_extents, 0, INT64_MAX, 0);
Just to add to this point:
A key aim is to make nbdkit _plugins_ as easy to write as possible.
So plugins always receive bounds checked parameters, and the APIs that
plugins call are supposed to be easy to use / have no sharp edges.
Also of course the plugin API and ABI is stable.
This doesn't apply so much to filters. There's no stable API/ABI for
filters, they're all in-tree, and it's quite complicated to write them
correctly.
However in this case the API (nbdkit_add_extent) is used by both
plugins and filters, so it is meant to be easy to use.
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