mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 00:48:50 +00:00
btrfs: open code csum_exist_in_range()
The csum_exist_in_range() function is now too trivial and is only used in one place, so open code it in its single caller. Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
8d2a83a97f
commit
236e3107fc
1 changed files with 7 additions and 12 deletions
|
@ -1736,15 +1736,6 @@ static noinline int run_delalloc_cow(struct btrfs_inode *inode,
|
|||
return 1;
|
||||
}
|
||||
|
||||
static noinline int csum_exist_in_range(struct btrfs_fs_info *fs_info,
|
||||
u64 bytenr, u64 num_bytes, bool nowait)
|
||||
{
|
||||
struct btrfs_root *csum_root = btrfs_csum_root(fs_info, bytenr);
|
||||
|
||||
return btrfs_lookup_csums_list(csum_root, bytenr, bytenr + num_bytes - 1,
|
||||
NULL, nowait);
|
||||
}
|
||||
|
||||
static int fallback_to_cow(struct btrfs_inode *inode, struct page *locked_page,
|
||||
const u64 start, const u64 end)
|
||||
{
|
||||
|
@ -1859,6 +1850,7 @@ static int can_nocow_file_extent(struct btrfs_path *path,
|
|||
struct extent_buffer *leaf = path->nodes[0];
|
||||
struct btrfs_root *root = inode->root;
|
||||
struct btrfs_file_extent_item *fi;
|
||||
struct btrfs_root *csum_root;
|
||||
u64 extent_end;
|
||||
u8 extent_type;
|
||||
int can_nocow = 0;
|
||||
|
@ -1919,7 +1911,7 @@ static int can_nocow_file_extent(struct btrfs_path *path,
|
|||
if (args->free_path) {
|
||||
/*
|
||||
* We don't need the path anymore, plus through the
|
||||
* csum_exist_in_range() call below we will end up allocating
|
||||
* btrfs_lookup_csums_list() call below we will end up allocating
|
||||
* another path. So free the path to avoid unnecessary extra
|
||||
* memory usage.
|
||||
*/
|
||||
|
@ -1940,8 +1932,11 @@ static int can_nocow_file_extent(struct btrfs_path *path,
|
|||
* Force COW if csums exist in the range. This ensures that csums for a
|
||||
* given extent are either valid or do not exist.
|
||||
*/
|
||||
ret = csum_exist_in_range(root->fs_info, args->disk_bytenr, args->num_bytes,
|
||||
nowait);
|
||||
|
||||
csum_root = btrfs_csum_root(root->fs_info, args->disk_bytenr);
|
||||
ret = btrfs_lookup_csums_list(csum_root, args->disk_bytenr,
|
||||
args->disk_bytenr + args->num_bytes - 1,
|
||||
NULL, nowait);
|
||||
WARN_ON_ONCE(ret > 0 && is_freespace_inode);
|
||||
if (ret != 0)
|
||||
goto out;
|
||||
|
|
Loading…
Reference in a new issue