[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