[Libguestfs] [PATCH v2] file: Normalize errno value for ENODEV

Nir Soffer nsoffer at redhat.com
Mon Jul 30 19:27:14 UTC 2018


On Mon, Jul 30, 2018 at 9:23 PM Eric Blake <eblake at redhat.com> wrote:

> On 07/30/2018 12:02 PM, Nir Soffer wrote:
> > Fix issues Eric found in the original patch:
> > https://www.redhat.com/archives/libguestfs/2018-July/msg00072.html
> >
> > - When handling ENODEV, the caller is expecting EOPNOTSUPP to trigger
> >    fallback.
> > - ENODEV should be ignored in file_trim.
> >
> > Tested only on Fedora 28 and RHEL 7.5.
> > ---
> >   plugins/file/file.c | 33 ++++++++++++++++++++++++---------
> >   1 file changed, 24 insertions(+), 9 deletions(-)
> >
>
> > +#if defined(FALLOC_FL_PUNCH_HOLE) || defined(FALLOC_FL_ZERO_RANGE)
> > +static int
> > +do_fallocate(int fd, int mode, off_t offset, off_t len)
> > +{
> > +  int r = -1;
> > +  r = fallocate (fd, mode, offset, len);
>
> Dead assignment to r in the declaration. Could merge these two lines
> into one.  Not necessarily worth a respin just for that.
>

I tried to keep the style used in this file, but here it is indeed never
needed.


>
> > +  /* kernel 3.10 fails with ENODEV for block device. Kernel >= 4.9 fails
> > +     with EOPNOTSUPP in this case. Normalize errno to simplify callers.
> */
>
> Comment is slightly misleading - new enough kernels coupled with decent
> enough block device drivers actually succeed rather than failing. But
> I'm fine with checking in the comment as worded.
>

The comment is only about the error flow. Moving it into the block would
avoid the confusion.


>
> ACK
>
> --
> Eric Blake, Principal Software Engineer
> Red Hat, Inc.           +1-919-301-3266 <(919)%20301-3266>
> Virtualization:  qemu.org | libvirt.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20180730/c89c71b3/attachment.htm>


More information about the Libguestfs mailing list