summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nilfs2/segment.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index 70ded52dc1dd..68e5769cef3b 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -711,18 +711,14 @@ static size_t nilfs_lookup_dirty_data_buffers(struct inode *inode,
711 pagevec_init(&pvec, 0); 711 pagevec_init(&pvec, 0);
712 repeat: 712 repeat:
713 if (unlikely(index > last) || 713 if (unlikely(index > last) ||
714 !pagevec_lookup_tag(&pvec, mapping, &index, PAGECACHE_TAG_DIRTY, 714 !pagevec_lookup_range_tag(&pvec, mapping, &index, last,
715 min_t(pgoff_t, last - index, 715 PAGECACHE_TAG_DIRTY, PAGEVEC_SIZE))
716 PAGEVEC_SIZE - 1) + 1))
717 return ndirties; 716 return ndirties;
718 717
719 for (i = 0; i < pagevec_count(&pvec); i++) { 718 for (i = 0; i < pagevec_count(&pvec); i++) {
720 struct buffer_head *bh, *head; 719 struct buffer_head *bh, *head;
721 struct page *page = pvec.pages[i]; 720 struct page *page = pvec.pages[i];
722 721
723 if (unlikely(page->index > last))
724 break;
725
726 lock_page(page); 722 lock_page(page);
727 if (!page_has_buffers(page)) 723 if (!page_has_buffers(page))
728 create_empty_buffers(page, i_blocksize(inode), 0); 724 create_empty_buffers(page, i_blocksize(inode), 0);