提交 4006f437 编写于 作者: J Jan Kara 提交者: Linus Torvalds

btrfs: use pagevec_lookup_range_tag()

We want only pages from given range in btree_write_cache_pages() and
extent_write_cache_pages().  Use pagevec_lookup_range_tag() instead of
pagevec_lookup_tag() and remove unnecessary code.

Link: http://lkml.kernel.org/r/20171009151359.31984-3-jack@suse.czSigned-off-by: NJan Kara <jack@suse.cz>
Reviewed-by: NDavid Sterba <dsterba@suse.com>
Reviewed-by: NDaniel Jordan <daniel.m.jordan@oracle.com>
Cc: David Sterba <dsterba@suse.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 72b045ae
...@@ -3814,8 +3814,8 @@ int btree_write_cache_pages(struct address_space *mapping, ...@@ -3814,8 +3814,8 @@ int btree_write_cache_pages(struct address_space *mapping,
if (wbc->sync_mode == WB_SYNC_ALL) if (wbc->sync_mode == WB_SYNC_ALL)
tag_pages_for_writeback(mapping, index, end); tag_pages_for_writeback(mapping, index, end);
while (!done && !nr_to_write_done && (index <= end) && while (!done && !nr_to_write_done && (index <= end) &&
(nr_pages = pagevec_lookup_tag(&pvec, mapping, &index, tag, (nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index, end,
min(end - index, (pgoff_t)PAGEVEC_SIZE-1) + 1))) { tag, PAGEVEC_SIZE))) {
unsigned i; unsigned i;
scanned = 1; scanned = 1;
...@@ -3825,11 +3825,6 @@ int btree_write_cache_pages(struct address_space *mapping, ...@@ -3825,11 +3825,6 @@ int btree_write_cache_pages(struct address_space *mapping,
if (!PagePrivate(page)) if (!PagePrivate(page))
continue; continue;
if (!wbc->range_cyclic && page->index > end) {
done = 1;
break;
}
spin_lock(&mapping->private_lock); spin_lock(&mapping->private_lock);
if (!PagePrivate(page)) { if (!PagePrivate(page)) {
spin_unlock(&mapping->private_lock); spin_unlock(&mapping->private_lock);
...@@ -3961,8 +3956,8 @@ static int extent_write_cache_pages(struct address_space *mapping, ...@@ -3961,8 +3956,8 @@ static int extent_write_cache_pages(struct address_space *mapping,
tag_pages_for_writeback(mapping, index, end); tag_pages_for_writeback(mapping, index, end);
done_index = index; done_index = index;
while (!done && !nr_to_write_done && (index <= end) && while (!done && !nr_to_write_done && (index <= end) &&
(nr_pages = pagevec_lookup_tag(&pvec, mapping, &index, tag, (nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index, end,
min(end - index, (pgoff_t)PAGEVEC_SIZE-1) + 1))) { tag, PAGEVEC_SIZE))) {
unsigned i; unsigned i;
scanned = 1; scanned = 1;
...@@ -3987,12 +3982,6 @@ static int extent_write_cache_pages(struct address_space *mapping, ...@@ -3987,12 +3982,6 @@ static int extent_write_cache_pages(struct address_space *mapping,
continue; continue;
} }
if (!wbc->range_cyclic && page->index > end) {
done = 1;
unlock_page(page);
continue;
}
if (wbc->sync_mode != WB_SYNC_NONE) { if (wbc->sync_mode != WB_SYNC_NONE) {
if (PageWriteback(page)) if (PageWriteback(page))
flush_fn(data); flush_fn(data);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册