[Libguestfs] [PATCH nbdkit 2/6] checkwrite: Simplify trim/zero using nbdkit_extents_full.

Richard W.M. Jones rjones at redhat.com
Wed Feb 3 22:04:14 UTC 2021


On Wed, Feb 03, 2021 at 02:50:43PM -0600, Eric Blake wrote:
> On 1/26/21 3:51 PM, Richard W.M. Jones wrote:
> > ---
> >  filters/checkwrite/checkwrite.c | 96 +++++++++++++--------------------
> >  1 file changed, 38 insertions(+), 58 deletions(-)
> > 
> > diff --git a/filters/checkwrite/checkwrite.c b/filters/checkwrite/checkwrite.c
> > index 68c57c37..2792d4d8 100644
> > --- a/filters/checkwrite/checkwrite.c
> > +++ b/filters/checkwrite/checkwrite.c
> > @@ -150,67 +150,47 @@ checkwrite_trim_zero (struct nbdkit_next_ops *next_ops, void *nxdata,
> >  {
> >    /* If the plugin supports extents, speed this up by using them. */
> >    if (next_ops->can_extents (nxdata)) {
> 
> > +    size_t i, n;
> > +    CLEANUP_EXTENTS_FREE struct nbdkit_extents *exts =
> > +      nbdkit_extents_full (next_ops, nxdata, count, offset, 0, err);
> > +    if (exts == NULL)
> > +      return -1;
> 
> Should we instead behave like the entire region is data, instead of
> reflecting back the error?

After thinking about this, I think if plugin.extents is returning
errors then we should return an error.  But that's only because this
filter is designed to test copying tools, and so it should be
extra-cautious and prefer failing over trying to continue.  In a
different kind of filter the trade-off would be different, and trying
to continue would make sense.

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