diff options
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r-- | fs/btrfs/extent_io.c | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 3f2bbebe7598..5239ad70ac3e 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -1730,16 +1730,13 @@ static struct extent_buffer *find_extent_buffer_nolock( static void end_bbio_meta_write(struct btrfs_bio *bbio) { struct extent_buffer *eb = bbio->private; - struct btrfs_fs_info *fs_info = eb->fs_info; struct folio_iter fi; if (bbio->bio.bi_status != BLK_STS_OK) set_btree_ioerr(eb); bio_for_each_folio_all(fi, &bbio->bio) { - struct folio *folio = fi.folio; - - btrfs_meta_folio_clear_writeback(fs_info, folio, eb->start, eb->len); + btrfs_meta_folio_clear_writeback(fi.folio, eb); } clear_bit(EXTENT_BUFFER_WRITEBACK, &eb->bflags); @@ -1801,8 +1798,8 @@ static noinline_for_stack void write_one_eb(struct extent_buffer *eb, eb->start + eb->len) - range_start; folio_lock(folio); - btrfs_meta_folio_clear_dirty(fs_info, folio, eb->start, eb->len); - btrfs_meta_folio_set_writeback(fs_info, folio, eb->start, eb->len); + btrfs_meta_folio_clear_dirty(folio, eb); + btrfs_meta_folio_set_writeback(folio, eb); if (!folio_test_dirty(folio)) wbc->nr_to_write -= folio_nr_pages(folio); bio_add_folio_nofail(&bbio->bio, folio, range_len, @@ -3124,7 +3121,7 @@ reallocate: * and free the allocated page. */ folio = eb->folios[i]; - WARN_ON(btrfs_meta_folio_test_dirty(fs_info, folio, eb->start, eb->len)); + WARN_ON(btrfs_meta_folio_test_dirty(folio, eb)); /* * Check if the current page is physically contiguous with previous eb @@ -3135,7 +3132,7 @@ reallocate: if (i && folio_page(eb->folios[i - 1], 0) + 1 != folio_page(folio, 0)) page_contig = false; - if (!btrfs_meta_folio_test_uptodate(fs_info, folio, eb->start, eb->len)) + if (!btrfs_meta_folio_test_uptodate(folio, eb)) uptodate = 0; /* @@ -3358,8 +3355,7 @@ void btrfs_clear_buffer_dirty(struct btrfs_trans_handle *trans, if (!folio_test_dirty(folio)) continue; folio_lock(folio); - last = btrfs_meta_folio_clear_and_test_dirty(fs_info, folio, - eb->start, eb->len); + last = btrfs_meta_folio_clear_and_test_dirty(folio, eb); if (last) btree_clear_folio_dirty_tag(folio); folio_unlock(folio); @@ -3398,8 +3394,7 @@ void set_extent_buffer_dirty(struct extent_buffer *eb) if (subpage) folio_lock(eb->folios[0]); for (int i = 0; i < num_folios; i++) - btrfs_meta_folio_set_dirty(eb->fs_info, eb->folios[i], - eb->start, eb->len); + btrfs_meta_folio_set_dirty(eb->folios[i], eb); if (subpage) folio_unlock(eb->folios[0]); percpu_counter_add_batch(&eb->fs_info->dirty_metadata_bytes, @@ -3414,7 +3409,6 @@ void set_extent_buffer_dirty(struct extent_buffer *eb) void clear_extent_buffer_uptodate(struct extent_buffer *eb) { - struct btrfs_fs_info *fs_info = eb->fs_info; int num_folios = num_extent_folios(eb); clear_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags); @@ -3424,21 +3418,17 @@ void clear_extent_buffer_uptodate(struct extent_buffer *eb) if (!folio) continue; - btrfs_meta_folio_clear_uptodate(fs_info, folio, eb->start, eb->len); + btrfs_meta_folio_clear_uptodate(folio, eb); } } void set_extent_buffer_uptodate(struct extent_buffer *eb) { - struct btrfs_fs_info *fs_info = eb->fs_info; int num_folios = num_extent_folios(eb); set_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags); - for (int i = 0; i < num_folios; i++) { - struct folio *folio = eb->folios[i]; - - btrfs_meta_folio_set_uptodate(fs_info, folio, eb->start, eb->len); - } + for (int i = 0; i < num_folios; i++) + btrfs_meta_folio_set_uptodate(eb->folios[i], eb); } static void clear_extent_buffer_reading(struct extent_buffer *eb) |