From: Matthew Wilcox (Oracle) Date: Wed, 9 Feb 2022 20:22:04 +0000 (+0000) Subject: btrfs: Convert extent_range_redirty_for_io() to use folios X-Git-Tag: v5.18-rc1~166^2~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ebf55c886eb7fc3c54d02ba1046f0ee38b81fc10;p=thirdparty%2Fkernel%2Flinux.git btrfs: Convert extent_range_redirty_for_io() to use folios This removes a call to __set_page_dirty_nobuffers(). Signed-off-by: Matthew Wilcox (Oracle) Tested-by: Damien Le Moal Acked-by: Damien Le Moal Tested-by: Mike Marshall # orangefs Tested-by: David Howells # afs --- diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 9c9952ce33a25..3d6dc91213154 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -1507,17 +1507,17 @@ void extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end) void extent_range_redirty_for_io(struct inode *inode, u64 start, u64 end) { + struct address_space *mapping = inode->i_mapping; unsigned long index = start >> PAGE_SHIFT; unsigned long end_index = end >> PAGE_SHIFT; - struct page *page; + struct folio *folio; while (index <= end_index) { - page = find_get_page(inode->i_mapping, index); - BUG_ON(!page); /* Pages should be in the extent_io_tree */ - __set_page_dirty_nobuffers(page); - account_page_redirty(page); - put_page(page); - index++; + folio = filemap_get_folio(mapping, index); + filemap_dirty_folio(mapping, folio); + folio_account_redirty(folio); + index += folio_nr_pages(folio); + folio_put(folio); } }