fs: Convert drop_buffers() to use a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Sun, 1 May 2022 10:39:50 +0000 (06:39 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 10 May 2022 03:12:34 +0000 (23:12 -0400)
All callers now have a folio.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
fs/buffer.c

index 701af0035802455bea58b0b1b0d2d94abbc2db48..898c7f301b1b925558c8c7e77ce13e7fb1f3f899 100644 (file)
@@ -3180,10 +3180,10 @@ static inline int buffer_busy(struct buffer_head *bh)
                (bh->b_state & ((1 << BH_Dirty) | (1 << BH_Lock)));
 }
 
-static int
-drop_buffers(struct page *page, struct buffer_head **buffers_to_free)
+static bool
+drop_buffers(struct folio *folio, struct buffer_head **buffers_to_free)
 {
-       struct buffer_head *head = page_buffers(page);
+       struct buffer_head *head = folio_buffers(folio);
        struct buffer_head *bh;
 
        bh = head;
@@ -3201,10 +3201,10 @@ drop_buffers(struct page *page, struct buffer_head **buffers_to_free)
                bh = next;
        } while (bh != head);
        *buffers_to_free = head;
-       detach_page_private(page);
-       return 1;
+       folio_detach_private(folio);
+       return true;
 failed:
-       return 0;
+       return false;
 }
 
 bool try_to_free_buffers(struct folio *folio)
@@ -3218,12 +3218,12 @@ bool try_to_free_buffers(struct folio *folio)
                return false;
 
        if (mapping == NULL) {          /* can this still happen? */
-               ret = drop_buffers(&folio->page, &buffers_to_free);
+               ret = drop_buffers(folio, &buffers_to_free);
                goto out;
        }
 
        spin_lock(&mapping->private_lock);
-       ret = drop_buffers(&folio->page, &buffers_to_free);
+       ret = drop_buffers(folio, &buffers_to_free);
 
        /*
         * If the filesystem writes its buffers by hand (eg ext3)