@@ -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))) {
unsigned i;
for (i = 0; i < nr_pages; i++) {
struct page *page = pvec.pages[i];
- /* until radix tree lookup accepts end_index */
- if (page->index > end)
- continue;
-
wait_on_page_writeback(page);
ClearPageError(page);
}
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@suse.cz> --- mm/filemap.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)