Re: linux-next: manual merge of the akpm-current tree with the btrfs tree
From: Christoph Hellwig
Date: Fri Feb 26 2021 - 00:17:54 EST
On Fri, Feb 26, 2021 at 10:32:50AM +1100, Stephen Rothwell wrote:
>
> > - return filemap_read(iocb, to, ret);
>
> > + if (iocb->ki_flags & IOCB_NOWAIT)
>
> > + iocb->ki_flags |= IOCB_NOIO;
>
> > +
>
> > - ret = generic_file_buffered_read(iocb, to, ret);
>
> > ++ ret = filemap_read(iocb, to, ret);
>
> > +
>
> > + if (iocb->ki_flags & IOCB_NOWAIT) {
>
> > + iocb->ki_flags &= ~IOCB_NOIO;
>
> > + if (ret == 0)
>
> > + ret = -EAGAIN;
>
> > + }
>
> > +
>
> > + return ret;
>
> > }
I think the above code looks completely bogus. Instead whatever code
in btrfs hecks for IOCB_NOIO to avoid blocking readahead should also
check IOCB_NOWAIT.