[Libguestfs] [PATCH v3 1/4] file: Avoid unsupported fallocate() calls

Nir Soffer nsoffer at redhat.com
Sun Aug 19 14:11:12 UTC 2018


On Sun, Aug 19, 2018 at 2:35 PM Richard W.M. Jones <rjones at redhat.com>
wrote:

> On Sun, Aug 19, 2018 at 01:13:05AM +0300, Nir Soffer wrote:
> > When using file systems not supporting ZERO_RANGE (e.g. NFS 4.2) or
> > block device on kernel < 4.9, we used to call fallocate() for every
> > zero, fail with EOPNOTSUPP, and fallback to manual zeroing.  When
> > trimming, we used to try unsupported fallocate() on every call.
> >
> > Change file handle to remember if punching holes or zeroing range are
> > supported, and avoid unsupported calls.
> >
> > - zero changed to:
> >   1. If we can punch hole and may trim, try PUNCH_HOLE
> >   2. If we can zero range, try ZERO_RANGE
> >   3. Fall back to manual writing
> >
> > - trim changed to:
> >   1. If we can punch hole, try PUNCH_HOLE
> >   2. Succeed
> > ---
> >  plugins/file/file.c | 80 ++++++++++++++++++++++++++++++---------------
> >  1 file changed, 53 insertions(+), 27 deletions(-)
> >
> > diff --git a/plugins/file/file.c b/plugins/file/file.c
> > index 3bb4d17..5daab63 100644
> > --- a/plugins/file/file.c
> > +++ b/plugins/file/file.c
> > @@ -33,6 +33,7 @@
> >
> >  #include <config.h>
> >
> > +#include <stdbool.h>
> >  #include <stdio.h>
> >  #include <stdlib.h>
>
> Can you put stdbook after stdlib for consistency with the
> other source files.
>

Sure.


>
> >  #ifdef FALLOC_FL_ZERO_RANGE
> > -  r = do_fallocate (h->fd, FALLOC_FL_ZERO_RANGE, offset, count);
> > -  if (r == -1 && errno != EOPNOTSUPP) {
> > -    nbdkit_error ("zero: %m");
> > +  if (h->can_zero_range) {
> > +    r = do_fallocate (h->fd, FALLOC_FL_ZERO_RANGE, offset, count);
> > +    if (r== 0)
>
> Spacing.
>

I think Eric comments on the same, line, but I don't see any spacing issue.
Can you explain where is the issue?


>
> Rich.
>
> --
> Richard Jones, Virtualization Group, Red Hat
> http://people.redhat.com/~rjones
> Read my programming and virtualization blog: http://rwmj.wordpress.com
> virt-builder quickly builds VMs from scratch
> http://libguestfs.org/virt-builder.1.html
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20180819/4c271faf/attachment.htm>


More information about the Libguestfs mailing list