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; Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx