[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJfpegshssCJiA8PBcq2XvBj3mR8dufHb0zWRFvvKKv82VQYsw@mail.gmail.com>
Date: Wed, 25 Mar 2020 15:43:02 +0100
From: Miklos Szeredi <miklos@...redi.hu>
To: Matthew Wilcox <willy@...radead.org>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
linux-fsdevel@...r.kernel.org, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, linux-btrfs@...r.kernel.org,
linux-erofs@...ts.ozlabs.org, linux-ext4@...r.kernel.org,
linux-f2fs-devel@...ts.sourceforge.net, cluster-devel@...hat.com,
ocfs2-devel@....oracle.com, linux-xfs <linux-xfs@...r.kernel.org>,
Dave Chinner <dchinner@...hat.com>,
William Kucharski <william.kucharski@...cle.com>
Subject: Re: [PATCH v10 24/25] fuse: Convert from readpages to readahead
On Wed, Mar 25, 2020 at 1:02 PM Matthew Wilcox <willy@...radead.org> wrote:
>
> On Wed, Mar 25, 2020 at 10:42:56AM +0100, Miklos Szeredi wrote:
> > > + while ((page = readahead_page(rac))) {
> > > + if (fuse_readpages_fill(&data, page) != 0)
> >
> > Shouldn't this unlock + put page on error?
>
> We're certainly inconsistent between the two error exits from
> fuse_readpages_fill(). But I think we can simplify the whole thing
> ... how does this look to you?
Nice, overall.
>
> - while ((page = readahead_page(rac))) {
> - if (fuse_readpages_fill(&data, page) != 0)
> + nr_pages = min(readahead_count(rac), fc->max_pages);
Missing fc->max_read clamp.
> + ia = fuse_io_alloc(NULL, nr_pages);
> + if (!ia)
> return;
> + ap = &ia->ap;
> + __readahead_batch(rac, ap->pages, nr_pages);
nr_pages = __readahead_batch(...)?
This will give consecutive pages, right?
Thanks,
Miklos
Powered by blists - more mailing lists