On Thu, Jul 26, 2018 at 7:41 PM Kevin Wolf <kw...@redhat.com> wrote:
...

> > > +#ifdef CONFIG_FALLOCATE_PUNCH_HOLE
> > > +    ret = do_fallocate(s->fd, FALLOC_FL_PUNCH_HOLE |
> FALLOC_FL_KEEP_SIZE,
> > > +                       aiocb->aio_offset, aiocb->aio_nbytes);
> > > +    if (ret != -ENOTSUP) {
> > >
> >
> > This fails with ENODEV on RHEL 7.5 when fd is a block device.
> >
> > The manual says:
> >
> >        ENODEV fd does not refer to a regular file or a directory.  (If fd
> > is a pipe or FIFO, a different error results.)
>
> do_fallocate() is a wrapper around fallocate() that handles EINTR and
> translates a few errno values (including ENODEV) into a -ENOTSUP return
> code.
>

I missed that, so this looks correct.

Nir

Reply via email to