Commit 1bbf3a3a authored by Josef Bacik's avatar Josef Bacik Committed by David Sterba
Browse files

btrfs: convert btrfs_set_range_writeback() to use a folio



We already use a lot of functions here that use folios, update the
function to use __filemap_get_folio instead of find_get_page and then
use the folio directly.

Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent dfc9e301
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -8958,19 +8958,19 @@ void btrfs_set_range_writeback(struct btrfs_inode *inode, u64 start, u64 end)
	struct btrfs_fs_info *fs_info = inode->root->fs_info;
	unsigned long index = start >> PAGE_SHIFT;
	unsigned long end_index = end >> PAGE_SHIFT;
	struct page *page;
	struct folio *folio;
	u32 len;

	ASSERT(end + 1 - start <= U32_MAX);
	len = end + 1 - start;
	while (index <= end_index) {
		page = find_get_page(inode->vfs_inode.i_mapping, index);
		ASSERT(page); /* Pages should be in the extent_io_tree */
		folio = __filemap_get_folio(inode->vfs_inode.i_mapping, index, 0, 0);
		ASSERT(!IS_ERR(folio)); /* folios should be in the extent_io_tree */

		/* This is for data, which doesn't yet support larger folio. */
		ASSERT(folio_order(page_folio(page)) == 0);
		btrfs_folio_set_writeback(fs_info, page_folio(page), start, len);
		put_page(page);
		ASSERT(folio_order(folio) == 0);
		btrfs_folio_set_writeback(fs_info, folio, start, len);
		folio_put(folio);
		index++;
	}
}