gfs2: Convert gfs2_aspace_writepage() to use a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 3 Apr 2024 17:23:51 +0000 (18:23 +0100)
committerAndreas Gruenbacher <agruenba@redhat.com>
Fri, 3 May 2024 19:01:02 +0000 (21:01 +0200)
Convert the incoming struct page to a folio and use it throughout.
Saves six calls to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/meta_io.c

index f814054c8cd08ab388e4cf1ffc249093366063d7..2b26e8d529aa1e9bd36f8dfbacbd686c0489ce2f 100644 (file)
 
 static int gfs2_aspace_writepage(struct page *page, struct writeback_control *wbc)
 {
+       struct folio *folio = page_folio(page);
        struct buffer_head *bh, *head;
        int nr_underway = 0;
        blk_opf_t write_flags = REQ_META | REQ_PRIO | wbc_to_write_flags(wbc);
 
-       BUG_ON(!PageLocked(page));
-       BUG_ON(!page_has_buffers(page));
+       BUG_ON(!folio_test_locked(folio));
 
-       head = page_buffers(page);
+       head = folio_buffers(folio);
        bh = head;
 
        do {
@@ -55,7 +55,7 @@ static int gfs2_aspace_writepage(struct page *page, struct writeback_control *wb
                if (wbc->sync_mode != WB_SYNC_NONE) {
                        lock_buffer(bh);
                } else if (!trylock_buffer(bh)) {
-                       redirty_page_for_writepage(wbc, page);
+                       folio_redirty_for_writepage(wbc, folio);
                        continue;
                }
                if (test_clear_buffer_dirty(bh)) {
@@ -69,8 +69,8 @@ static int gfs2_aspace_writepage(struct page *page, struct writeback_control *wb
         * The page and its buffers are protected by PageWriteback(), so we can
         * drop the bh refcounts early.
         */
-       BUG_ON(PageWriteback(page));
-       set_page_writeback(page);
+       BUG_ON(folio_test_writeback(folio));
+       folio_start_writeback(folio);
 
        do {
                struct buffer_head *next = bh->b_this_page;
@@ -80,10 +80,10 @@ static int gfs2_aspace_writepage(struct page *page, struct writeback_control *wb
                }
                bh = next;
        } while (bh != head);
-       unlock_page(page);
+       folio_unlock(folio);
 
        if (nr_underway == 0)
-               end_page_writeback(page);
+               folio_end_writeback(folio);
 
        return 0;
 }