diff options
| author | Jan Kara <jack@suse.cz> | 2017-11-15 20:35:05 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-15 21:21:04 -0500 |
| commit | 312e9d2f7053f480627dcaf5e14f9cae78e3715a (patch) | |
| tree | 101a846fb11ae8d22a78b6a8f9de2bbf137a268c /mm | |
| parent | 40f9c51326efd362dbae6c0e07f0c0ada42a5e00 (diff) | |
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>
Diffstat (limited to 'mm')
| -rw-r--r-- | mm/filemap.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index cf74d0dacc6a..229481d258bc 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
| @@ -420,19 +420,17 @@ static void __filemap_fdatawait_range(struct address_space *mapping, | |||
| 420 | return; | 420 | return; |
| 421 | 421 | ||
| 422 | pagevec_init(&pvec, 0); | 422 | pagevec_init(&pvec, 0); |
| 423 | while ((index <= end) && | 423 | while (index <= end) { |
| 424 | (nr_pages = pagevec_lookup_tag(&pvec, mapping, &index, | ||
| 425 | PAGECACHE_TAG_WRITEBACK, | ||
| 426 | min(end - index, (pgoff_t)PAGEVEC_SIZE-1) + 1)) != 0) { | ||
| 427 | unsigned i; | 424 | unsigned i; |
| 428 | 425 | ||
| 426 | nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index, | ||
| 427 | end, PAGECACHE_TAG_WRITEBACK, PAGEVEC_SIZE); | ||
| 428 | if (!nr_pages) | ||
| 429 | break; | ||
| 430 | |||
| 429 | for (i = 0; i < nr_pages; i++) { | 431 | for (i = 0; i < nr_pages; i++) { |
| 430 | struct page *page = pvec.pages[i]; | 432 | struct page *page = pvec.pages[i]; |
| 431 | 433 | ||
| 432 | /* until radix tree lookup accepts end_index */ | ||
| 433 | if (page->index > end) | ||
| 434 | continue; | ||
| 435 | |||
| 436 | wait_on_page_writeback(page); | 434 | wait_on_page_writeback(page); |
| 437 | ClearPageError(page); | 435 | ClearPageError(page); |
| 438 | } | 436 | } |
