On Thu 28-09-17 08:19:02, Dave Chinner wrote: > On Wed, Sep 27, 2017 at 06:03:29PM +0200, Jan Kara wrote: > > Use pagevec_lookup_range_tag() in __filemap_fdatawait_range() as it is > > interested only in pages from given range. Remove unnecessary code > > resulting from this. > > > > Signed-off-by: Jan Kara <jack@xxxxxxx> > > --- > > mm/filemap.c | 9 ++------- > > 1 file changed, 2 insertions(+), 7 deletions(-) > > > > diff --git a/mm/filemap.c b/mm/filemap.c > > index fe20329c83cd..479fc54b7cd1 100644 > > --- a/mm/filemap.c > > +++ b/mm/filemap.c > > @@ -421,18 +421,13 @@ static void __filemap_fdatawait_range(struct address_space *mapping, > > > > pagevec_init(&pvec, 0); > > while ((index <= end) && > > - (nr_pages = pagevec_lookup_tag(&pvec, mapping, &index, > > - PAGECACHE_TAG_WRITEBACK, > > - min(end - index, (pgoff_t)PAGEVEC_SIZE-1) + 1)) != 0) { > > + (nr_pages = pagevec_lookup_range_tag(&pvec, mapping, > > + &index, end, PAGECACHE_TAG_WRITEBACK, PAGEVEC_SIZE))) { > > While touching this, can we clean this up by moving the lookup > outside the while condition? i.e: > > while (index <= end) { > unsigned i; > > nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index, > end, PAGECACHE_TAG_WRITEBACK, PAGEVEC_SIZE); > if (!nr_pages) > break; Yeah, that makes sense. I'll update it. Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR