Skip to content

Commit

Permalink
btrfs: convert fallback_to_cow() to take a folio
Browse files Browse the repository at this point in the history
With this we can pass the folio directly into cow_file_range().

Signed-off-by: Josef Bacik <[email protected]>
Reviewed-by: David Sterba <[email protected]>
Signed-off-by: David Sterba <[email protected]>
  • Loading branch information
josefbacik authored and kdave committed Sep 10, 2024
1 parent 4cf7e05 commit 39bbc56
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions fs/btrfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -1763,8 +1763,9 @@ static noinline int run_delalloc_cow(struct btrfs_inode *inode,
return 1;
}

static int fallback_to_cow(struct btrfs_inode *inode, struct page *locked_page,
const u64 start, const u64 end)
static int fallback_to_cow(struct btrfs_inode *inode,
struct folio *locked_folio, const u64 start,
const u64 end)
{
const bool is_space_ino = btrfs_is_free_space_inode(inode);
const bool is_reloc_ino = btrfs_is_data_reloc_root(inode->root);
Expand Down Expand Up @@ -1833,8 +1834,8 @@ static int fallback_to_cow(struct btrfs_inode *inode, struct page *locked_page,
* is written out and unlocked directly and a normal NOCOW extent
* doesn't work.
*/
ret = cow_file_range(inode, page_folio(locked_page), start, end, NULL,
false, true);
ret = cow_file_range(inode, locked_folio, start, end, NULL, false,
true);
ASSERT(ret != 1);
return ret;
}
Expand Down Expand Up @@ -2151,7 +2152,7 @@ static noinline int run_delalloc_nocow(struct btrfs_inode *inode,
* NOCOW, following one which needs to be COW'ed
*/
if (cow_start != (u64)-1) {
ret = fallback_to_cow(inode, locked_page,
ret = fallback_to_cow(inode, page_folio(locked_page),
cow_start, found_key.offset - 1);
cow_start = (u64)-1;
if (ret) {
Expand Down Expand Up @@ -2230,7 +2231,8 @@ static noinline int run_delalloc_nocow(struct btrfs_inode *inode,

if (cow_start != (u64)-1) {
cur_offset = end;
ret = fallback_to_cow(inode, locked_page, cow_start, end);
ret = fallback_to_cow(inode, page_folio(locked_page), cow_start,
end);
cow_start = (u64)-1;
if (ret)
goto error;
Expand Down

0 comments on commit 39bbc56

Please sign in to comment.