summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMel Gorman <mgorman@techsingularity.net>2017-11-15 20:37:52 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-11-15 21:21:06 -0500
commit8667982014d6048e0b5e286b6247ff24f48d4cc6 (patch)
tree244c06241957548ff284649ab0cbeac8501bce3a
parentd9ed0d08b6c6a882da1d8e75bb3162fc889fd199 (diff)
mm, pagevec: remove cold parameter for pagevecs
Every pagevec_init user claims the pages being released are hot even in cases where it is unlikely the pages are hot. As no one cares about the hotness of pages being released to the allocator, just ditch the parameter. No performance impact is expected as the overhead is marginal. The parameter is removed simply because it is a bit stupid to have a useless parameter copied everywhere. Link: http://lkml.kernel.org/r/20171018075952.10627-6-mgorman@techsingularity.net Signed-off-by: Mel Gorman <mgorman@techsingularity.net> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Andi Kleen <ak@linux.intel.com> Cc: Dave Chinner <david@fromorbit.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Jan Kara <jack@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.c2
-rw-r--r--fs/afs/write.c4
-rw-r--r--fs/btrfs/extent_io.c4
-rw-r--r--fs/buffer.c4
-rw-r--r--fs/cachefiles/rdwr.c4
-rw-r--r--fs/ceph/addr.c4
-rw-r--r--fs/dax.c2
-rw-r--r--fs/ext4/inode.c6
-rw-r--r--fs/f2fs/checkpoint.c2
-rw-r--r--fs/f2fs/data.c2
-rw-r--r--fs/f2fs/node.c8
-rw-r--r--fs/fscache/page.c2
-rw-r--r--fs/gfs2/aops.c2
-rw-r--r--fs/hugetlbfs/inode.c2
-rw-r--r--fs/nilfs2/btree.c2
-rw-r--r--fs/nilfs2/page.c8
-rw-r--r--fs/nilfs2/segment.c4
-rw-r--r--include/linux/pagevec.h4
-rw-r--r--mm/filemap.c2
-rw-r--r--mm/mlock.c4
-rw-r--r--mm/page-writeback.c2
-rw-r--r--mm/shmem.c6
-rw-r--r--mm/swap.c4
-rw-r--r--mm/truncate.c8
24 files changed, 45 insertions, 47 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
index ad524cb0f6fc..7982ad817c11 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
@@ -1859,7 +1859,7 @@ static void i915_address_space_init(struct i915_address_space *vm,
1859 INIT_LIST_HEAD(&vm->unbound_list); 1859 INIT_LIST_HEAD(&vm->unbound_list);
1860 1860
1861 list_add_tail(&vm->global_link, &dev_priv->vm_list); 1861 list_add_tail(&vm->global_link, &dev_priv->vm_list);
1862 pagevec_init(&vm->free_pages, false); 1862 pagevec_init(&vm->free_pages);
1863} 1863}
1864 1864
1865static void i915_address_space_fini(struct i915_address_space *vm) 1865static void i915_address_space_fini(struct i915_address_space *vm)
diff --git a/fs/afs/write.c b/fs/afs/write.c
index d62a6b54152d..11dd0526b96b 100644
--- a/fs/afs/write.c
+++ b/fs/afs/write.c
@@ -308,7 +308,7 @@ static void afs_kill_pages(struct afs_vnode *vnode, bool error,
308 _enter("{%x:%u},%lx-%lx", 308 _enter("{%x:%u},%lx-%lx",
309 vnode->fid.vid, vnode->fid.vnode, first, last); 309 vnode->fid.vid, vnode->fid.vnode, first, last);
310 310
311 pagevec_init(&pv, 0); 311 pagevec_init(&pv);
312 312
313 do { 313 do {
314 _debug("kill %lx-%lx", first, last); 314 _debug("kill %lx-%lx", first, last);
@@ -602,7 +602,7 @@ void afs_pages_written_back(struct afs_vnode *vnode, struct afs_call *call)
602 602
603 ASSERT(wb != NULL); 603 ASSERT(wb != NULL);
604 604
605 pagevec_init(&pv, 0); 605 pagevec_init(&pv);
606 606
607 do { 607 do {
608 _debug("done %lx-%lx", first, last); 608 _debug("done %lx-%lx", first, last);
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 93fdaac81212..16045ea86fc1 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3797,7 +3797,7 @@ int btree_write_cache_pages(struct address_space *mapping,
3797 int scanned = 0; 3797 int scanned = 0;
3798 int tag; 3798 int tag;
3799 3799
3800 pagevec_init(&pvec, 0); 3800 pagevec_init(&pvec);
3801 if (wbc->range_cyclic) { 3801 if (wbc->range_cyclic) {
3802 index = mapping->writeback_index; /* Start from prev offset */ 3802 index = mapping->writeback_index; /* Start from prev offset */
3803 end = -1; 3803 end = -1;
@@ -3936,7 +3936,7 @@ static int extent_write_cache_pages(struct address_space *mapping,
3936 if (!igrab(inode)) 3936 if (!igrab(inode))
3937 return 0; 3937 return 0;
3938 3938
3939 pagevec_init(&pvec, 0); 3939 pagevec_init(&pvec);
3940 if (wbc->range_cyclic) { 3940 if (wbc->range_cyclic) {
3941 index = mapping->writeback_index; /* Start from prev offset */ 3941 index = mapping->writeback_index; /* Start from prev offset */
3942 end = -1; 3942 end = -1;
diff --git a/fs/buffer.c b/fs/buffer.c
index 1c18a22a6013..0736a6a2e2f0 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -1592,7 +1592,7 @@ void clean_bdev_aliases(struct block_device *bdev, sector_t block, sector_t len)
1592 struct buffer_head *head; 1592 struct buffer_head *head;
1593 1593
1594 end = (block + len - 1) >> (PAGE_SHIFT - bd_inode->i_blkbits); 1594 end = (block + len - 1) >> (PAGE_SHIFT - bd_inode->i_blkbits);
1595 pagevec_init(&pvec, 0); 1595 pagevec_init(&pvec);
1596 while (pagevec_lookup_range(&pvec, bd_mapping, &index, end)) { 1596 while (pagevec_lookup_range(&pvec, bd_mapping, &index, end)) {
1597 count = pagevec_count(&pvec); 1597 count = pagevec_count(&pvec);
1598 for (i = 0; i < count; i++) { 1598 for (i = 0; i < count; i++) {
@@ -3514,7 +3514,7 @@ page_cache_seek_hole_data(struct inode *inode, loff_t offset, loff_t length,
3514 if (length <= 0) 3514 if (length <= 0)
3515 return -ENOENT; 3515 return -ENOENT;
3516 3516
3517 pagevec_init(&pvec, 0); 3517 pagevec_init(&pvec);
3518 3518
3519 do { 3519 do {
3520 unsigned nr_pages, i; 3520 unsigned nr_pages, i;
diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c
index 18d7aa61ef0f..23097cca2674 100644
--- a/fs/cachefiles/rdwr.c
+++ b/fs/cachefiles/rdwr.c
@@ -710,7 +710,7 @@ int cachefiles_read_or_alloc_pages(struct fscache_retrieval *op,
710 /* calculate the shift required to use bmap */ 710 /* calculate the shift required to use bmap */
711 shift = PAGE_SHIFT - inode->i_sb->s_blocksize_bits; 711 shift = PAGE_SHIFT - inode->i_sb->s_blocksize_bits;
712 712
713 pagevec_init(&pagevec, 0); 713 pagevec_init(&pagevec);
714 714
715 op->op.flags &= FSCACHE_OP_KEEP_FLAGS; 715 op->op.flags &= FSCACHE_OP_KEEP_FLAGS;
716 op->op.flags |= FSCACHE_OP_ASYNC; 716 op->op.flags |= FSCACHE_OP_ASYNC;
@@ -844,7 +844,7 @@ int cachefiles_allocate_pages(struct fscache_retrieval *op,
844 844
845 ret = cachefiles_has_space(cache, 0, *nr_pages); 845 ret = cachefiles_has_space(cache, 0, *nr_pages);
846 if (ret == 0) { 846 if (ret == 0) {
847 pagevec_init(&pagevec, 0); 847 pagevec_init(&pagevec);
848 848
849 list_for_each_entry(page, pages, lru) { 849 list_for_each_entry(page, pages, lru) {
850 if (pagevec_add(&pagevec, page) == 0) 850 if (pagevec_add(&pagevec, page) == 0)
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
index 26c682db94ee..dbf07051aacd 100644
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@ -680,7 +680,7 @@ static void ceph_release_pages(struct page **pages, int num)
680 struct pagevec pvec; 680 struct pagevec pvec;
681 int i; 681 int i;
682 682
683 pagevec_init(&pvec, 0); 683 pagevec_init(&pvec);
684 for (i = 0; i < num; i++) { 684 for (i = 0; i < num; i++) {
685 if (pagevec_add(&pvec, pages[i]) == 0) 685 if (pagevec_add(&pvec, pages[i]) == 0)
686 pagevec_release(&pvec); 686 pagevec_release(&pvec);
@@ -811,7 +811,7 @@ static int ceph_writepages_start(struct address_space *mapping,
811 if (fsc->mount_options->wsize < wsize) 811 if (fsc->mount_options->wsize < wsize)
812 wsize = fsc->mount_options->wsize; 812 wsize = fsc->mount_options->wsize;
813 813
814 pagevec_init(&pvec, 0); 814 pagevec_init(&pvec);
815 815
816 start_index = wbc->range_cyclic ? mapping->writeback_index : 0; 816 start_index = wbc->range_cyclic ? mapping->writeback_index : 0;
817 index = start_index; 817 index = start_index;
diff --git a/fs/dax.c b/fs/dax.c
index 165fdfb6e508..3652b26a0048 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -794,7 +794,7 @@ int dax_writeback_mapping_range(struct address_space *mapping,
794 794
795 tag_pages_for_writeback(mapping, start_index, end_index); 795 tag_pages_for_writeback(mapping, start_index, end_index);
796 796
797 pagevec_init(&pvec, 0); 797 pagevec_init(&pvec);
798 while (!done) { 798 while (!done) {
799 pvec.nr = find_get_entries_tag(mapping, start_index, 799 pvec.nr = find_get_entries_tag(mapping, start_index,
800 PAGECACHE_TAG_TOWRITE, PAGEVEC_SIZE, 800 PAGECACHE_TAG_TOWRITE, PAGEVEC_SIZE,
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index b239a41dbeeb..8d2b582fb141 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1719,7 +1719,7 @@ static void mpage_release_unused_pages(struct mpage_da_data *mpd,
1719 ext4_es_remove_extent(inode, start, last - start + 1); 1719 ext4_es_remove_extent(inode, start, last - start + 1);
1720 } 1720 }
1721 1721
1722 pagevec_init(&pvec, 0); 1722 pagevec_init(&pvec);
1723 while (index <= end) { 1723 while (index <= end) {
1724 nr_pages = pagevec_lookup_range(&pvec, mapping, &index, end); 1724 nr_pages = pagevec_lookup_range(&pvec, mapping, &index, end);
1725 if (nr_pages == 0) 1725 if (nr_pages == 0)
@@ -2345,7 +2345,7 @@ static int mpage_map_and_submit_buffers(struct mpage_da_data *mpd)
2345 lblk = start << bpp_bits; 2345 lblk = start << bpp_bits;
2346 pblock = mpd->map.m_pblk; 2346 pblock = mpd->map.m_pblk;
2347 2347
2348 pagevec_init(&pvec, 0); 2348 pagevec_init(&pvec);
2349 while (start <= end) { 2349 while (start <= end) {
2350 nr_pages = pagevec_lookup_range(&pvec, inode->i_mapping, 2350 nr_pages = pagevec_lookup_range(&pvec, inode->i_mapping,
2351 &start, end); 2351 &start, end);
@@ -2616,7 +2616,7 @@ static int mpage_prepare_extent_to_map(struct mpage_da_data *mpd)
2616 else 2616 else
2617 tag = PAGECACHE_TAG_DIRTY; 2617 tag = PAGECACHE_TAG_DIRTY;
2618 2618
2619 pagevec_init(&pvec, 0); 2619 pagevec_init(&pvec);
2620 mpd->map.m_len = 0; 2620 mpd->map.m_len = 0;
2621 mpd->next_page = index; 2621 mpd->next_page = index;
2622 while (index <= end) { 2622 while (index <= end) {
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index 6124f8710dc3..0bb8e2c022d3 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -314,7 +314,7 @@ long sync_meta_pages(struct f2fs_sb_info *sbi, enum page_type type,
314 }; 314 };
315 struct blk_plug plug; 315 struct blk_plug plug;
316 316
317 pagevec_init(&pvec, 0); 317 pagevec_init(&pvec);
318 318
319 blk_start_plug(&plug); 319 blk_start_plug(&plug);
320 320
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 687703755824..7b3ad5d8e2e9 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -1635,7 +1635,7 @@ static int f2fs_write_cache_pages(struct address_space *mapping,
1635 int range_whole = 0; 1635 int range_whole = 0;
1636 int tag; 1636 int tag;
1637 1637
1638 pagevec_init(&pvec, 0); 1638 pagevec_init(&pvec);
1639 1639
1640 if (get_dirty_pages(mapping->host) <= 1640 if (get_dirty_pages(mapping->host) <=
1641 SM_I(F2FS_M_SB(mapping))->min_hot_blocks) 1641 SM_I(F2FS_M_SB(mapping))->min_hot_blocks)
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index d6e4df0bb622..b33dac9592ca 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -1282,7 +1282,7 @@ static struct page *last_fsync_dnode(struct f2fs_sb_info *sbi, nid_t ino)
1282 struct page *last_page = NULL; 1282 struct page *last_page = NULL;
1283 int nr_pages; 1283 int nr_pages;
1284 1284
1285 pagevec_init(&pvec, 0); 1285 pagevec_init(&pvec);
1286 index = 0; 1286 index = 0;
1287 1287
1288 while ((nr_pages = pagevec_lookup_tag(&pvec, NODE_MAPPING(sbi), &index, 1288 while ((nr_pages = pagevec_lookup_tag(&pvec, NODE_MAPPING(sbi), &index,
@@ -1436,7 +1436,7 @@ int fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
1436 return PTR_ERR_OR_ZERO(last_page); 1436 return PTR_ERR_OR_ZERO(last_page);
1437 } 1437 }
1438retry: 1438retry:
1439 pagevec_init(&pvec, 0); 1439 pagevec_init(&pvec);
1440 index = 0; 1440 index = 0;
1441 1441
1442 while ((nr_pages = pagevec_lookup_tag(&pvec, NODE_MAPPING(sbi), &index, 1442 while ((nr_pages = pagevec_lookup_tag(&pvec, NODE_MAPPING(sbi), &index,
@@ -1547,7 +1547,7 @@ int sync_node_pages(struct f2fs_sb_info *sbi, struct writeback_control *wbc,
1547 int ret = 0; 1547 int ret = 0;
1548 int nr_pages; 1548 int nr_pages;
1549 1549
1550 pagevec_init(&pvec, 0); 1550 pagevec_init(&pvec);
1551 1551
1552next_step: 1552next_step:
1553 index = 0; 1553 index = 0;
@@ -1648,7 +1648,7 @@ int wait_on_node_pages_writeback(struct f2fs_sb_info *sbi, nid_t ino)
1648 int ret2, ret = 0; 1648 int ret2, ret = 0;
1649 int nr_pages; 1649 int nr_pages;
1650 1650
1651 pagevec_init(&pvec, 0); 1651 pagevec_init(&pvec);
1652 1652
1653 while ((nr_pages = pagevec_lookup_tag(&pvec, NODE_MAPPING(sbi), &index, 1653 while ((nr_pages = pagevec_lookup_tag(&pvec, NODE_MAPPING(sbi), &index,
1654 PAGECACHE_TAG_WRITEBACK))) { 1654 PAGECACHE_TAG_WRITEBACK))) {
diff --git a/fs/fscache/page.c b/fs/fscache/page.c
index 0ad3fd3ad0b4..961029e04027 100644
--- a/fs/fscache/page.c
+++ b/fs/fscache/page.c
@@ -1175,7 +1175,7 @@ void __fscache_uncache_all_inode_pages(struct fscache_cookie *cookie,
1175 return; 1175 return;
1176 } 1176 }
1177 1177
1178 pagevec_init(&pvec, 0); 1178 pagevec_init(&pvec);
1179 next = 0; 1179 next = 0;
1180 do { 1180 do {
1181 if (!pagevec_lookup(&pvec, mapping, &next)) 1181 if (!pagevec_lookup(&pvec, mapping, &next))
diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c
index 3fea3d7780b0..1daf15a1f00c 100644
--- a/fs/gfs2/aops.c
+++ b/fs/gfs2/aops.c
@@ -371,7 +371,7 @@ static int gfs2_write_cache_jdata(struct address_space *mapping,
371 int range_whole = 0; 371 int range_whole = 0;
372 int tag; 372 int tag;
373 373
374 pagevec_init(&pvec, 0); 374 pagevec_init(&pvec);
375 if (wbc->range_cyclic) { 375 if (wbc->range_cyclic) {
376 writeback_index = mapping->writeback_index; /* prev offset */ 376 writeback_index = mapping->writeback_index; /* prev offset */
377 index = writeback_index; 377 index = writeback_index;
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 6adb17bb1a38..1e76730aac0d 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -407,7 +407,7 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart,
407 407
408 memset(&pseudo_vma, 0, sizeof(struct vm_area_struct)); 408 memset(&pseudo_vma, 0, sizeof(struct vm_area_struct));
409 pseudo_vma.vm_flags = (VM_HUGETLB | VM_MAYSHARE | VM_SHARED); 409 pseudo_vma.vm_flags = (VM_HUGETLB | VM_MAYSHARE | VM_SHARED);
410 pagevec_init(&pvec, 0); 410 pagevec_init(&pvec);
411 next = start; 411 next = start;
412 while (next < end) { 412 while (next < end) {
413 /* 413 /*
diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c
index 35989c7bb065..16a7a67a11c9 100644
--- a/fs/nilfs2/btree.c
+++ b/fs/nilfs2/btree.c
@@ -2156,7 +2156,7 @@ static void nilfs_btree_lookup_dirty_buffers(struct nilfs_bmap *btree,
2156 level++) 2156 level++)
2157 INIT_LIST_HEAD(&lists[level]); 2157 INIT_LIST_HEAD(&lists[level]);
2158 2158
2159 pagevec_init(&pvec, 0); 2159 pagevec_init(&pvec);
2160 2160
2161 while (pagevec_lookup_tag(&pvec, btcache, &index, 2161 while (pagevec_lookup_tag(&pvec, btcache, &index,
2162 PAGECACHE_TAG_DIRTY)) { 2162 PAGECACHE_TAG_DIRTY)) {
diff --git a/fs/nilfs2/page.c b/fs/nilfs2/page.c
index 1c16726915c1..68241512d7c1 100644
--- a/fs/nilfs2/page.c
+++ b/fs/nilfs2/page.c
@@ -255,7 +255,7 @@ int nilfs_copy_dirty_pages(struct address_space *dmap,
255 pgoff_t index = 0; 255 pgoff_t index = 0;
256 int err = 0; 256 int err = 0;
257 257
258 pagevec_init(&pvec, 0); 258 pagevec_init(&pvec);
259repeat: 259repeat:
260 if (!pagevec_lookup_tag(&pvec, smap, &index, PAGECACHE_TAG_DIRTY)) 260 if (!pagevec_lookup_tag(&pvec, smap, &index, PAGECACHE_TAG_DIRTY))
261 return 0; 261 return 0;
@@ -309,7 +309,7 @@ void nilfs_copy_back_pages(struct address_space *dmap,
309 pgoff_t index = 0; 309 pgoff_t index = 0;
310 int err; 310 int err;
311 311
312 pagevec_init(&pvec, 0); 312 pagevec_init(&pvec);
313repeat: 313repeat:
314 n = pagevec_lookup(&pvec, smap, &index); 314 n = pagevec_lookup(&pvec, smap, &index);
315 if (!n) 315 if (!n)
@@ -373,7 +373,7 @@ void nilfs_clear_dirty_pages(struct address_space *mapping, bool silent)
373 unsigned int i; 373 unsigned int i;
374 pgoff_t index = 0; 374 pgoff_t index = 0;
375 375
376 pagevec_init(&pvec, 0); 376 pagevec_init(&pvec);
377 377
378 while (pagevec_lookup_tag(&pvec, mapping, &index, 378 while (pagevec_lookup_tag(&pvec, mapping, &index,
379 PAGECACHE_TAG_DIRTY)) { 379 PAGECACHE_TAG_DIRTY)) {
@@ -518,7 +518,7 @@ unsigned long nilfs_find_uncommitted_extent(struct inode *inode,
518 index = start_blk >> (PAGE_SHIFT - inode->i_blkbits); 518 index = start_blk >> (PAGE_SHIFT - inode->i_blkbits);
519 nblocks_in_page = 1U << (PAGE_SHIFT - inode->i_blkbits); 519 nblocks_in_page = 1U << (PAGE_SHIFT - inode->i_blkbits);
520 520
521 pagevec_init(&pvec, 0); 521 pagevec_init(&pvec);
522 522
523repeat: 523repeat:
524 pvec.nr = find_get_pages_contig(inode->i_mapping, index, PAGEVEC_SIZE, 524 pvec.nr = find_get_pages_contig(inode->i_mapping, index, PAGEVEC_SIZE,
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index 19366ab20bea..f65392fecb5c 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -708,7 +708,7 @@ static size_t nilfs_lookup_dirty_data_buffers(struct inode *inode,
708 index = start >> PAGE_SHIFT; 708 index = start >> PAGE_SHIFT;
709 last = end >> PAGE_SHIFT; 709 last = end >> PAGE_SHIFT;
710 } 710 }
711 pagevec_init(&pvec, 0); 711 pagevec_init(&pvec);
712 repeat: 712 repeat:
713 if (unlikely(index > last) || 713 if (unlikely(index > last) ||
714 !pagevec_lookup_range_tag(&pvec, mapping, &index, last, 714 !pagevec_lookup_range_tag(&pvec, mapping, &index, last,
@@ -753,7 +753,7 @@ static void nilfs_lookup_dirty_node_buffers(struct inode *inode,
753 unsigned int i; 753 unsigned int i;
754 pgoff_t index = 0; 754 pgoff_t index = 0;
755 755
756 pagevec_init(&pvec, 0); 756 pagevec_init(&pvec);
757 757
758 while (pagevec_lookup_tag(&pvec, mapping, &index, 758 while (pagevec_lookup_tag(&pvec, mapping, &index,
759 PAGECACHE_TAG_DIRTY)) { 759 PAGECACHE_TAG_DIRTY)) {
diff --git a/include/linux/pagevec.h b/include/linux/pagevec.h
index 95c75c858d1f..eebefd209424 100644
--- a/include/linux/pagevec.h
+++ b/include/linux/pagevec.h
@@ -17,7 +17,6 @@ struct address_space;
17 17
18struct pagevec { 18struct pagevec {
19 unsigned long nr; 19 unsigned long nr;
20 bool cold;
21 bool drained; 20 bool drained;
22 struct page *pages[PAGEVEC_SIZE]; 21 struct page *pages[PAGEVEC_SIZE];
23}; 22};
@@ -51,10 +50,9 @@ static inline unsigned pagevec_lookup_tag(struct pagevec *pvec,
51 return pagevec_lookup_range_tag(pvec, mapping, index, (pgoff_t)-1, tag); 50 return pagevec_lookup_range_tag(pvec, mapping, index, (pgoff_t)-1, tag);
52} 51}
53 52
54static inline void pagevec_init(struct pagevec *pvec, int cold) 53static inline void pagevec_init(struct pagevec *pvec)
55{ 54{
56 pvec->nr = 0; 55 pvec->nr = 0;
57 pvec->cold = cold;
58 pvec->drained = false; 56 pvec->drained = false;
59} 57}
60 58
diff --git a/mm/filemap.c b/mm/filemap.c
index 155370fc87f2..90a9f261f85f 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -519,7 +519,7 @@ static void __filemap_fdatawait_range(struct address_space *mapping,
519 if (end_byte < start_byte) 519 if (end_byte < start_byte)
520 return; 520 return;
521 521
522 pagevec_init(&pvec, 0); 522 pagevec_init(&pvec);
523 while (index <= end) { 523 while (index <= end) {
524 unsigned i; 524 unsigned i;
525 525
diff --git a/mm/mlock.c b/mm/mlock.c
index 46af369c13e5..ed37cb208d19 100644
--- a/mm/mlock.c
+++ b/mm/mlock.c
@@ -289,7 +289,7 @@ static void __munlock_pagevec(struct pagevec *pvec, struct zone *zone)
289 struct pagevec pvec_putback; 289 struct pagevec pvec_putback;
290 int pgrescued = 0; 290 int pgrescued = 0;
291 291
292 pagevec_init(&pvec_putback, 0); 292 pagevec_init(&pvec_putback);
293 293
294 /* Phase 1: page isolation */ 294 /* Phase 1: page isolation */
295 spin_lock_irq(zone_lru_lock(zone)); 295 spin_lock_irq(zone_lru_lock(zone));
@@ -448,7 +448,7 @@ void munlock_vma_pages_range(struct vm_area_struct *vma,
448 struct pagevec pvec; 448 struct pagevec pvec;
449 struct zone *zone; 449 struct zone *zone;
450 450
451 pagevec_init(&pvec, 0); 451 pagevec_init(&pvec);
452 /* 452 /*
453 * Although FOLL_DUMP is intended for get_dump_page(), 453 * Although FOLL_DUMP is intended for get_dump_page(),
454 * it just so happens that its special treatment of the 454 * it just so happens that its special treatment of the
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 436714917e03..05313f402ba8 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -2168,7 +2168,7 @@ int write_cache_pages(struct address_space *mapping,
2168 int range_whole = 0; 2168 int range_whole = 0;
2169 int tag; 2169 int tag;
2170 2170
2171 pagevec_init(&pvec, 0); 2171 pagevec_init(&pvec);
2172 if (wbc->range_cyclic) { 2172 if (wbc->range_cyclic) {
2173 writeback_index = mapping->writeback_index; /* prev offset */ 2173 writeback_index = mapping->writeback_index; /* prev offset */
2174 index = writeback_index; 2174 index = writeback_index;
diff --git a/mm/shmem.c b/mm/shmem.c
index a72f68aee6a4..7ea8b276ba8b 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -747,7 +747,7 @@ void shmem_unlock_mapping(struct address_space *mapping)
747 pgoff_t indices[PAGEVEC_SIZE]; 747 pgoff_t indices[PAGEVEC_SIZE];
748 pgoff_t index = 0; 748 pgoff_t index = 0;
749 749
750 pagevec_init(&pvec, 0); 750 pagevec_init(&pvec);
751 /* 751 /*
752 * Minor point, but we might as well stop if someone else SHM_LOCKs it. 752 * Minor point, but we might as well stop if someone else SHM_LOCKs it.
753 */ 753 */
@@ -790,7 +790,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend,
790 if (lend == -1) 790 if (lend == -1)
791 end = -1; /* unsigned, so actually very big */ 791 end = -1; /* unsigned, so actually very big */
792 792
793 pagevec_init(&pvec, 0); 793 pagevec_init(&pvec);
794 index = start; 794 index = start;
795 while (index < end) { 795 while (index < end) {
796 pvec.nr = find_get_entries(mapping, index, 796 pvec.nr = find_get_entries(mapping, index,
@@ -2528,7 +2528,7 @@ static pgoff_t shmem_seek_hole_data(struct address_space *mapping,
2528 bool done = false; 2528 bool done = false;
2529 int i; 2529 int i;
2530 2530
2531 pagevec_init(&pvec, 0); 2531 pagevec_init(&pvec);
2532 pvec.nr = 1; /* start small: we may be there already */ 2532 pvec.nr = 1; /* start small: we may be there already */
2533 while (!done) { 2533 while (!done) {
2534 pvec.nr = find_get_entries(mapping, index, 2534 pvec.nr = find_get_entries(mapping, index,
diff --git a/mm/swap.c b/mm/swap.c
index 3e564a95ee73..88a19b6cdf7c 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -210,7 +210,7 @@ static void pagevec_lru_move_fn(struct pagevec *pvec,
210 } 210 }
211 if (pgdat) 211 if (pgdat)
212 spin_unlock_irqrestore(&pgdat->lru_lock, flags); 212 spin_unlock_irqrestore(&pgdat->lru_lock, flags);
213 release_pages(pvec->pages, pvec->nr, pvec->cold); 213 release_pages(pvec->pages, pvec->nr, 0);
214 pagevec_reinit(pvec); 214 pagevec_reinit(pvec);
215} 215}
216 216
@@ -837,7 +837,7 @@ void __pagevec_release(struct pagevec *pvec)
837 lru_add_drain(); 837 lru_add_drain();
838 pvec->drained = true; 838 pvec->drained = true;
839 } 839 }
840 release_pages(pvec->pages, pagevec_count(pvec), pvec->cold); 840 release_pages(pvec->pages, pagevec_count(pvec), 0);
841 pagevec_reinit(pvec); 841 pagevec_reinit(pvec);
842} 842}
843EXPORT_SYMBOL(__pagevec_release); 843EXPORT_SYMBOL(__pagevec_release);
diff --git a/mm/truncate.c b/mm/truncate.c
index c30e8fa3d063..e4b4cf0f4070 100644
--- a/mm/truncate.c
+++ b/mm/truncate.c
@@ -330,7 +330,7 @@ void truncate_inode_pages_range(struct address_space *mapping,
330 else 330 else
331 end = (lend + 1) >> PAGE_SHIFT; 331 end = (lend + 1) >> PAGE_SHIFT;
332 332
333 pagevec_init(&pvec, 0); 333 pagevec_init(&pvec);
334 index = start; 334 index = start;
335 while (index < end && pagevec_lookup_entries(&pvec, mapping, index, 335 while (index < end && pagevec_lookup_entries(&pvec, mapping, index,
336 min(end - index, (pgoff_t)PAGEVEC_SIZE), 336 min(end - index, (pgoff_t)PAGEVEC_SIZE),
@@ -342,7 +342,7 @@ void truncate_inode_pages_range(struct address_space *mapping,
342 */ 342 */
343 struct pagevec locked_pvec; 343 struct pagevec locked_pvec;
344 344
345 pagevec_init(&locked_pvec, 0); 345 pagevec_init(&locked_pvec);
346 for (i = 0; i < pagevec_count(&pvec); i++) { 346 for (i = 0; i < pagevec_count(&pvec); i++) {
347 struct page *page = pvec.pages[i]; 347 struct page *page = pvec.pages[i];
348 348
@@ -553,7 +553,7 @@ unsigned long invalidate_mapping_pages(struct address_space *mapping,
553 unsigned long count = 0; 553 unsigned long count = 0;
554 int i; 554 int i;
555 555
556 pagevec_init(&pvec, 0); 556 pagevec_init(&pvec);
557 while (index <= end && pagevec_lookup_entries(&pvec, mapping, index, 557 while (index <= end && pagevec_lookup_entries(&pvec, mapping, index,
558 min(end - index, (pgoff_t)PAGEVEC_SIZE - 1) + 1, 558 min(end - index, (pgoff_t)PAGEVEC_SIZE - 1) + 1,
559 indices)) { 559 indices)) {
@@ -683,7 +683,7 @@ int invalidate_inode_pages2_range(struct address_space *mapping,
683 if (mapping->nrpages == 0 && mapping->nrexceptional == 0) 683 if (mapping->nrpages == 0 && mapping->nrexceptional == 0)
684 goto out; 684 goto out;
685 685
686 pagevec_init(&pvec, 0); 686 pagevec_init(&pvec);
687 index = start; 687 index = start;
688 while (index <= end && pagevec_lookup_entries(&pvec, mapping, index, 688 while (index <= end && pagevec_lookup_entries(&pvec, mapping, index,
689 min(end - index, (pgoff_t)PAGEVEC_SIZE - 1) + 1, 689 min(end - index, (pgoff_t)PAGEVEC_SIZE - 1) + 1,