filemap: Use folios in next_uptodate_page
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Sat, 13 Mar 2021 04:33:43 +0000 (23:33 -0500)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 4 Jan 2022 18:15:34 +0000 (13:15 -0500)
This saves 105 bytes of text.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: William Kucharski <william.kucharski@oracle.com>
mm/filemap.c

index 3a8a85043540e877821be1f1592d69e6513d2275..14019070c98b51fdc641f3b08f390e69b69696d3 100644 (file)
@@ -3227,43 +3227,43 @@ static bool filemap_map_pmd(struct vm_fault *vmf, struct page *page)
        return false;
 }
 
-static struct page *next_uptodate_page(struct page *page,
+static struct page *next_uptodate_page(struct folio *folio,
                                       struct address_space *mapping,
                                       struct xa_state *xas, pgoff_t end_pgoff)
 {
        unsigned long max_idx;
 
        do {
-               if (!page)
+               if (!folio)
                        return NULL;
-               if (xas_retry(xas, page))
+               if (xas_retry(xas, folio))
                        continue;
-               if (xa_is_value(page))
+               if (xa_is_value(folio))
                        continue;
-               if (PageLocked(page))
+               if (folio_test_locked(folio))
                        continue;
-               if (!page_cache_get_speculative(page))
+               if (!folio_try_get_rcu(folio))
                        continue;
                /* Has the page moved or been split? */
-               if (unlikely(page != xas_reload(xas)))
+               if (unlikely(folio != xas_reload(xas)))
                        goto skip;
-               if (!PageUptodate(page) || PageReadahead(page))
+               if (!folio_test_uptodate(folio) || folio_test_readahead(folio))
                        goto skip;
-               if (!trylock_page(page))
+               if (!folio_trylock(folio))
                        goto skip;
-               if (page->mapping != mapping)
+               if (folio->mapping != mapping)
                        goto unlock;
-               if (!PageUptodate(page))
+               if (!folio_test_uptodate(folio))
                        goto unlock;
                max_idx = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE);
                if (xas->xa_index >= max_idx)
                        goto unlock;
-               return page;
+               return &folio->page;
 unlock:
-               unlock_page(page);
+               folio_unlock(folio);
 skip:
-               put_page(page);
-       } while ((page = xas_next_entry(xas, end_pgoff)) != NULL);
+               folio_put(folio);
+       } while ((folio = xas_next_entry(xas, end_pgoff)) != NULL);
 
        return NULL;
 }