mm: use pagevec_lookup_range_tag() in __filemap_fdatawait_range()
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. Link: http://lkml.kernel.org/r/20171009151359.31984-11-jack@suse.cz Signed-off-by: Jan Kara <jack@suse.cz> Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
40f9c51326
commit
312e9d2f70
1 changed files with 6 additions and 8 deletions
14
mm/filemap.c
14
mm/filemap.c
|
@ -420,19 +420,17 @@ static void __filemap_fdatawait_range(struct address_space *mapping,
|
|||
return;
|
||||
|
||||
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) {
|
||||
while (index <= end) {
|
||||
unsigned i;
|
||||
|
||||
nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index,
|
||||
end, PAGECACHE_TAG_WRITEBACK, PAGEVEC_SIZE);
|
||||
if (!nr_pages)
|
||||
break;
|
||||
|
||||
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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue