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
14
mm/filemap.c
14
mm/filemap.c
@ -420,19 +420,17 @@ static void __filemap_fdatawait_range(struct address_space *mapping,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
pagevec_init(&pvec, 0);
|
pagevec_init(&pvec, 0);
|
||||||
while ((index <= end) &&
|
while (index <= end) {
|
||||||
(nr_pages = pagevec_lookup_tag(&pvec, mapping, &index,
|
|
||||||
PAGECACHE_TAG_WRITEBACK,
|
|
||||||
min(end - index, (pgoff_t)PAGEVEC_SIZE-1) + 1)) != 0) {
|
|
||||||
unsigned i;
|
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++) {
|
for (i = 0; i < nr_pages; i++) {
|
||||||
struct page *page = pvec.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);
|
wait_on_page_writeback(page);
|
||||||
ClearPageError(page);
|
ClearPageError(page);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user