Commit 98456b9c authored by Nikolay Borisov's avatar Nikolay Borisov Committed by David Sterba

btrfs: make btrfs_run_delalloc_range take btrfs_inode

All children now take btrfs_inode so convert it to taking it as a
parameter as well.
Signed-off-by: default avatarNikolay Borisov <nborisov@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 0c494225
...@@ -2979,7 +2979,7 @@ int btrfs_prealloc_file_range_trans(struct inode *inode, ...@@ -2979,7 +2979,7 @@ int btrfs_prealloc_file_range_trans(struct inode *inode,
struct btrfs_trans_handle *trans, int mode, struct btrfs_trans_handle *trans, int mode,
u64 start, u64 num_bytes, u64 min_size, u64 start, u64 num_bytes, u64 min_size,
loff_t actual_len, u64 *alloc_hint); loff_t actual_len, u64 *alloc_hint);
int btrfs_run_delalloc_range(struct inode *inode, struct page *locked_page, int btrfs_run_delalloc_range(struct btrfs_inode *inode, struct page *locked_page,
u64 start, u64 end, int *page_started, unsigned long *nr_written, u64 start, u64 end, int *page_started, unsigned long *nr_written,
struct writeback_control *wbc); struct writeback_control *wbc);
int btrfs_writepage_cow_fixup(struct page *page, u64 start, u64 end); int btrfs_writepage_cow_fixup(struct page *page, u64 start, u64 end);
......
...@@ -3439,7 +3439,7 @@ static noinline_for_stack int writepage_delalloc(struct inode *inode, ...@@ -3439,7 +3439,7 @@ static noinline_for_stack int writepage_delalloc(struct inode *inode,
delalloc_start = delalloc_end + 1; delalloc_start = delalloc_end + 1;
continue; continue;
} }
ret = btrfs_run_delalloc_range(inode, page, delalloc_start, ret = btrfs_run_delalloc_range(BTRFS_I(inode), page, delalloc_start,
delalloc_end, &page_started, nr_written, wbc); delalloc_end, &page_started, nr_written, wbc);
if (ret) { if (ret) {
SetPageError(page); SetPageError(page);
......
...@@ -1813,31 +1813,30 @@ static inline int need_force_cow(struct btrfs_inode *inode, u64 start, u64 end) ...@@ -1813,31 +1813,30 @@ static inline int need_force_cow(struct btrfs_inode *inode, u64 start, u64 end)
* Function to process delayed allocation (create CoW) for ranges which are * Function to process delayed allocation (create CoW) for ranges which are
* being touched for the first time. * being touched for the first time.
*/ */
int btrfs_run_delalloc_range(struct inode *inode, struct page *locked_page, int btrfs_run_delalloc_range(struct btrfs_inode *inode, struct page *locked_page,
u64 start, u64 end, int *page_started, unsigned long *nr_written, u64 start, u64 end, int *page_started, unsigned long *nr_written,
struct writeback_control *wbc) struct writeback_control *wbc)
{ {
int ret; int ret;
int force_cow = need_force_cow(BTRFS_I(inode), start, end); int force_cow = need_force_cow(inode, start, end);
if (BTRFS_I(inode)->flags & BTRFS_INODE_NODATACOW && !force_cow) { if (inode->flags & BTRFS_INODE_NODATACOW && !force_cow) {
ret = run_delalloc_nocow(BTRFS_I(inode), locked_page, start, end, ret = run_delalloc_nocow(inode, locked_page, start, end,
page_started, 1, nr_written); page_started, 1, nr_written);
} else if (BTRFS_I(inode)->flags & BTRFS_INODE_PREALLOC && !force_cow) { } else if (inode->flags & BTRFS_INODE_PREALLOC && !force_cow) {
ret = run_delalloc_nocow(BTRFS_I(inode), locked_page, start, end, ret = run_delalloc_nocow(inode, locked_page, start, end,
page_started, 0, nr_written); page_started, 0, nr_written);
} else if (!inode_can_compress(BTRFS_I(inode)) || } else if (!inode_can_compress(inode) ||
!inode_need_compress(BTRFS_I(inode), start, end)) { !inode_need_compress(inode, start, end)) {
ret = cow_file_range(BTRFS_I(inode), locked_page, start, end, ret = cow_file_range(inode, locked_page, start, end,
page_started, nr_written, 1); page_started, nr_written, 1);
} else { } else {
set_bit(BTRFS_INODE_HAS_ASYNC_EXTENT, set_bit(BTRFS_INODE_HAS_ASYNC_EXTENT, &inode->runtime_flags);
&BTRFS_I(inode)->runtime_flags); ret = cow_file_range_async(inode, wbc, locked_page, start, end,
ret = cow_file_range_async(BTRFS_I(inode), wbc, locked_page, start, end,
page_started, nr_written); page_started, nr_written);
} }
if (ret) if (ret)
btrfs_cleanup_ordered_extents(BTRFS_I(inode), locked_page, start, btrfs_cleanup_ordered_extents(inode, locked_page, start,
end - start + 1); end - start + 1);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment