]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: convert get_next_extent_buffer() to take a folio
authorLi Zetao <lizetao1@huawei.com>
Wed, 28 Aug 2024 18:28:56 +0000 (02:28 +0800)
committerDavid Sterba <dsterba@suse.com>
Tue, 10 Sep 2024 14:51:20 +0000 (16:51 +0200)
The old page API is being gradually replaced and converted to use folio
to improve code readability and avoid repeated conversion between page
and folio. Use folio_pos instead of page_offset, which is more
consistent with folio usage.

Signed-off-by: Li Zetao <lizetao1@huawei.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c

index 8b5f36474ae157094c75bf722b1eb2e4110ea2f7..65b6b391f283a495e8199f6f41b9bb4f42191aeb 100644 (file)
@@ -4041,17 +4041,17 @@ void memmove_extent_buffer(const struct extent_buffer *dst,
 
 #define GANG_LOOKUP_SIZE       16
 static struct extent_buffer *get_next_extent_buffer(
-               const struct btrfs_fs_info *fs_info, struct page *page, u64 bytenr)
+               const struct btrfs_fs_info *fs_info, struct folio *folio, u64 bytenr)
 {
        struct extent_buffer *gang[GANG_LOOKUP_SIZE];
        struct extent_buffer *found = NULL;
-       u64 page_start = page_offset(page);
-       u64 cur = page_start;
+       u64 folio_start = folio_pos(folio);
+       u64 cur = folio_start;
 
-       ASSERT(in_range(bytenr, page_start, PAGE_SIZE));
+       ASSERT(in_range(bytenr, folio_start, PAGE_SIZE));
        lockdep_assert_held(&fs_info->buffer_lock);
 
-       while (cur < page_start + PAGE_SIZE) {
+       while (cur < folio_start + PAGE_SIZE) {
                int ret;
                int i;
 
@@ -4063,7 +4063,7 @@ static struct extent_buffer *get_next_extent_buffer(
                        goto out;
                for (i = 0; i < ret; i++) {
                        /* Already beyond page end */
-                       if (gang[i]->start >= page_start + PAGE_SIZE)
+                       if (gang[i]->start >= folio_start + PAGE_SIZE)
                                goto out;
                        /* Found one */
                        if (gang[i]->start >= bytenr) {
@@ -4096,7 +4096,7 @@ static int try_release_subpage_extent_buffer(struct page *page)
                 * with spinlock rather than RCU.
                 */
                spin_lock(&fs_info->buffer_lock);
-               eb = get_next_extent_buffer(fs_info, page, cur);
+               eb = get_next_extent_buffer(fs_info, page_folio(page), cur);
                if (!eb) {
                        /* No more eb in the page range after or at cur */
                        spin_unlock(&fs_info->buffer_lock);