shmem: Convert shmem_unlock_mapping() to use filemap_get_folios()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Sat, 4 Jun 2022 21:40:17 +0000 (17:40 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 29 Jun 2022 12:51:06 +0000 (08:51 -0400)
This is a straightforward conversion.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Acked-by: Christian Brauner (Microsoft) <brauner@kernel.org>
mm/shmem.c

index 6a5e46f..28a62be 100644 (file)
@@ -867,18 +867,17 @@ unsigned long shmem_swap_usage(struct vm_area_struct *vma)
  */
 void shmem_unlock_mapping(struct address_space *mapping)
 {
-       struct pagevec pvec;
+       struct folio_batch fbatch;
        pgoff_t index = 0;
 
-       pagevec_init(&pvec);
+       folio_batch_init(&fbatch);
        /*
         * Minor point, but we might as well stop if someone else SHM_LOCKs it.
         */
-       while (!mapping_unevictable(mapping)) {
-               if (!pagevec_lookup(&pvec, mapping, &index))
-                       break;
-               check_move_unevictable_pages(&pvec);
-               pagevec_release(&pvec);
+       while (!mapping_unevictable(mapping) &&
+              filemap_get_folios(mapping, &index, ~0UL, &fbatch)) {
+               check_move_unevictable_folios(&fbatch);
+               folio_batch_release(&fbatch);
                cond_resched();
        }
 }