[Libguestfs] [nbdkit PATCH 2/4] filters: Utilize CLEANUP_EXTENTS_FREE

Richard W.M. Jones rjones at redhat.com
Wed Apr 24 07:43:28 UTC 2019


On Tue, Apr 23, 2019 at 02:11:50PM -0500, Eric Blake wrote:
> On 4/23/19 2:06 PM, Eric Blake wrote:
> > Now that cleanup.h is in common code, we can use it in our
> > filters. The first round focuses just on places that called
> > nbdkit_extents_free(), as all three callers had multiple exit paths
> > that definitely benefit from the macro.
> > 
> > Signed-off-by: Eric Blake <eblake at redhat.com>
> > ---
> >  filters/offset/offset.c       | 13 +++++--------
> >  filters/partition/partition.c | 12 ++++--------
> >  filters/truncate/truncate.c   | 12 ++++--------
> >  filters/offset/Makefile.am    |  5 ++++-
> >  filters/partition/Makefile.am |  5 ++++-
> >  filters/truncate/Makefile.am  |  5 ++++-
> >  6 files changed, 25 insertions(+), 27 deletions(-)
> > 
> 
> 
> > @@ -322,20 +323,15 @@ truncate_extents (struct nbdkit_next_ops *next_ops, void *nxdata,
> >      n = count;
> >    else
> >      n = real_size_copy - offset;
> > -  if (next_ops->extents (nxdata, n, offset, flags, extents2, err) == -1) {
> > -    nbdkit_extents_free (extents2);
> > +  if (next_ops->extents (nxdata, n, offset, flags, extents2, err) == -1)
> >      return -1;
> > -  }
> > 
> >    for (i = 0; i < nbdkit_extents_count (extents2); ++i) {
> >      struct nbdkit_extent e = nbdkit_get_extent (extents2, i);
> > 
> > -    if (nbdkit_add_extent (extents, e.offset, e.length, e.type) == -1) {
> > -      nbdkit_extents_free (extents2);
> > +    if (nbdkit_add_extent (extents, e.offset, e.length, e.type) == -1)
> >        return -1;
> > -    }
> 
> Of course, we have to re-add the {} if we fix nbdkit_add_extent() to set
> reasonable errno so that we can '*err = errno' on failure...

Yup.  This patch is fine however, so:

ACK

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW




More information about the Libguestfs mailing list