ext4: convert ac_bitmap_page to ac_bitmap_folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 16 Apr 2024 17:28:57 +0000 (18:28 +0100)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 7 May 2024 19:38:14 +0000 (15:38 -0400)
This just carries around the bd_bitmap_folio so should also be a folio.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Link: https://lore.kernel.org/r/20240416172900.244637-5-willy@infradead.org
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/mballoc.c
fs/ext4/mballoc.h

index 71950abb457e8255f56030f3d546f142d7cd1ed5..218480b20058ee98d1844bbdadcf0351a0ea6dff 100644 (file)
@@ -2161,8 +2161,8 @@ static void ext4_mb_use_best_found(struct ext4_allocation_context *ac,
         * double allocate blocks. The reference is dropped
         * in ext4_mb_release_context
         */
-       ac->ac_bitmap_page = &e4b->bd_bitmap_folio->page;
-       get_page(ac->ac_bitmap_page);
+       ac->ac_bitmap_folio = e4b->bd_bitmap_folio;
+       folio_get(ac->ac_bitmap_folio);
        ac->ac_buddy_page = &e4b->bd_buddy_folio->page;
        get_page(ac->ac_buddy_page);
        /* store last allocated for subsequent stream allocation */
@@ -6002,8 +6002,8 @@ static void ext4_mb_release_context(struct ext4_allocation_context *ac)
 
                ext4_mb_put_pa(ac, ac->ac_sb, pa);
        }
-       if (ac->ac_bitmap_page)
-               put_page(ac->ac_bitmap_page);
+       if (ac->ac_bitmap_folio)
+               folio_put(ac->ac_bitmap_folio);
        if (ac->ac_buddy_page)
                put_page(ac->ac_buddy_page);
        if (ac->ac_flags & EXT4_MB_HINT_GROUP_ALLOC)
index 268c838ddc2d80a905656d1894ded75a31c5836d..469e5516fb77ef469317ca2a00e805ac594aa97a 100644 (file)
@@ -204,7 +204,7 @@ struct ext4_allocation_context {
        __u8 ac_2order;         /* if request is to allocate 2^N blocks and
                                 * N > 0, the field stores N, otherwise 0 */
        __u8 ac_op;             /* operation, for history only */
-       struct page *ac_bitmap_page;
+       struct folio *ac_bitmap_folio;
        struct page *ac_buddy_page;
        struct ext4_prealloc_space *ac_pa;
        struct ext4_locality_group *ac_lg;