]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: unwrap folio locking helpers
authorDavid Sterba <dsterba@suse.com>
Thu, 9 Jan 2025 10:24:38 +0000 (11:24 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 13 Jan 2025 13:53:23 +0000 (14:53 +0100)
Another conversion to folio API, use the folio locking directly instead
of back and forth page <-> folio conversions.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c

index 9651a75495648bb5b06b7aaf9ef7fa8f6328660f..4ccf629d212739255c24d1adebb329bcc490af3e 100644 (file)
@@ -3131,7 +3131,7 @@ again:
         * live buffer and won't free them prematurely.
         */
        for (int i = 0; i < num_folios; i++)
-               unlock_page(folio_page(eb->folios[i], 0));
+               folio_unlock(eb->folios[i]);
        return eb;
 
 out:
@@ -3155,7 +3155,7 @@ out:
        for (int i = 0; i < attached; i++) {
                ASSERT(eb->folios[i]);
                detach_extent_buffer_folio(eb, eb->folios[i]);
-               unlock_page(folio_page(eb->folios[i], 0));
+               folio_unlock(eb->folios[i]);
                folio_put(eb->folios[i]);
                eb->folios[i] = NULL;
        }
@@ -3364,12 +3364,12 @@ void set_extent_buffer_dirty(struct extent_buffer *eb)
                 * the above race.
                 */
                if (subpage)
-                       lock_page(folio_page(eb->folios[0], 0));
+                       folio_lock(eb->folios[0]);
                for (int i = 0; i < num_folios; i++)
                        btrfs_folio_set_dirty(eb->fs_info, eb->folios[i],
                                              eb->start, eb->len);
                if (subpage)
-                       unlock_page(folio_page(eb->folios[0], 0));
+                       folio_unlock(eb->folios[0]);
                percpu_counter_add_batch(&eb->fs_info->dirty_metadata_bytes,
                                         eb->len,
                                         eb->fs_info->dirty_metadata_batch);