btrfs: use pagevec_lookup_range_tag()
authorJan Kara <jack@suse.cz>
Thu, 16 Nov 2017 01:34:37 +0000 (17:34 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 16 Nov 2017 02:21:03 +0000 (18:21 -0800)
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.cz
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: David Sterba <dsterba@suse.com>
Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: David Sterba <dsterba@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/btrfs/extent_io.c

index adbbc017191cf1055c57aed2c8b83f7b5fc2779f..c18cf5d59521c3a334e1442e1d6e032ee277eab8 100644 (file)
@@ -3814,8 +3814,8 @@ retry:
        if (wbc->sync_mode == WB_SYNC_ALL)
                tag_pages_for_writeback(mapping, index, end);
        while (!done && !nr_to_write_done && (index <= end) &&
        if (wbc->sync_mode == WB_SYNC_ALL)
                tag_pages_for_writeback(mapping, index, end);
        while (!done && !nr_to_write_done && (index <= end) &&
-              (nr_pages = pagevec_lookup_tag(&pvec, mapping, &index, tag,
-                       min(end - index, (pgoff_t)PAGEVEC_SIZE-1) + 1))) {
+              (nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index, end,
+                       tag, PAGEVEC_SIZE))) {
                unsigned i;
 
                scanned = 1;
                unsigned i;
 
                scanned = 1;
@@ -3825,11 +3825,6 @@ retry:
                        if (!PagePrivate(page))
                                continue;
 
                        if (!PagePrivate(page))
                                continue;
 
-                       if (!wbc->range_cyclic && page->index > end) {
-                               done = 1;
-                               break;
-                       }
-
                        spin_lock(&mapping->private_lock);
                        if (!PagePrivate(page)) {
                                spin_unlock(&mapping->private_lock);
                        spin_lock(&mapping->private_lock);
                        if (!PagePrivate(page)) {
                                spin_unlock(&mapping->private_lock);
@@ -3961,8 +3956,8 @@ retry:
                tag_pages_for_writeback(mapping, index, end);
        done_index = index;
        while (!done && !nr_to_write_done && (index <= end) &&
                tag_pages_for_writeback(mapping, index, end);
        done_index = index;
        while (!done && !nr_to_write_done && (index <= end) &&
-              (nr_pages = pagevec_lookup_tag(&pvec, mapping, &index, tag,
-                       min(end - index, (pgoff_t)PAGEVEC_SIZE-1) + 1))) {
+              (nr_pages = pagevec_lookup_range_tag(&pvec, mapping, &index, end,
+                       tag, PAGEVEC_SIZE))) {
                unsigned i;
 
                scanned = 1;
                unsigned i;
 
                scanned = 1;
@@ -3987,12 +3982,6 @@ retry:
                                continue;
                        }
 
                                continue;
                        }
 
-                       if (!wbc->range_cyclic && page->index > end) {
-                               done = 1;
-                               unlock_page(page);
-                               continue;
-                       }
-
                        if (wbc->sync_mode != WB_SYNC_NONE) {
                                if (PageWriteback(page))
                                        flush_fn(data);
                        if (wbc->sync_mode != WB_SYNC_NONE) {
                                if (PageWriteback(page))
                                        flush_fn(data);