btrfs: convert extent_range_clear_dirty_for_io() to use a folio

Instead of getting a page and using that to clear dirty for io, use the
folio helper and use the appropriate folio functions.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Josef Bacik
2024-07-24 20:39:35 -04:00
committed by David Sterba
parent c86d3aac81
commit 5fe1912449

View File

@@ -877,19 +877,19 @@ static inline void inode_should_defrag(struct btrfs_inode *inode,
static int extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end)
{
unsigned long end_index = end >> PAGE_SHIFT;
struct page *page;
struct folio *folio;
int ret = 0;
for (unsigned long index = start >> PAGE_SHIFT;
index <= end_index; index++) {
page = find_get_page(inode->i_mapping, index);
if (unlikely(!page)) {
folio = __filemap_get_folio(inode->i_mapping, index, 0, 0);
if (IS_ERR(folio)) {
if (!ret)
ret = -ENOENT;
ret = PTR_ERR(folio);
continue;
}
clear_page_dirty_for_io(page);
put_page(page);
folio_clear_dirty_for_io(folio);
folio_put(folio);
}
return ret;
}