On Fri, Feb 26, 2021 at 06:16:26AM +0100, Christoph Hellwig wrote:
> 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.

Thanks for the comment, I've removed the patch from for-next and
notified the authors.

Reply via email to