|
@@ -961,7 +961,6 @@ static noinline int cow_file_range(struct inode *inode,
|
|
|
u64 alloc_hint = 0;
|
|
|
u64 num_bytes;
|
|
|
unsigned long ram_size;
|
|
|
- u64 disk_num_bytes;
|
|
|
u64 cur_alloc_size = 0;
|
|
|
u64 blocksize = fs_info->sectorsize;
|
|
|
struct btrfs_key ins;
|
|
@@ -979,7 +978,6 @@ static noinline int cow_file_range(struct inode *inode,
|
|
|
|
|
|
num_bytes = ALIGN(end - start + 1, blocksize);
|
|
|
num_bytes = max(blocksize, num_bytes);
|
|
|
- disk_num_bytes = num_bytes;
|
|
|
|
|
|
inode_should_defrag(BTRFS_I(inode), start, end, num_bytes, SZ_64K);
|
|
|
|
|
@@ -1010,15 +1008,14 @@ static noinline int cow_file_range(struct inode *inode,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- BUG_ON(disk_num_bytes >
|
|
|
- btrfs_super_total_bytes(fs_info->super_copy));
|
|
|
+ BUG_ON(num_bytes > btrfs_super_total_bytes(fs_info->super_copy));
|
|
|
|
|
|
alloc_hint = get_extent_allocation_hint(inode, start, num_bytes);
|
|
|
btrfs_drop_extent_cache(BTRFS_I(inode), start,
|
|
|
start + num_bytes - 1, 0);
|
|
|
|
|
|
- while (disk_num_bytes > 0) {
|
|
|
- cur_alloc_size = disk_num_bytes;
|
|
|
+ while (num_bytes > 0) {
|
|
|
+ cur_alloc_size = num_bytes;
|
|
|
ret = btrfs_reserve_extent(root, cur_alloc_size, cur_alloc_size,
|
|
|
fs_info->sectorsize, 0, alloc_hint,
|
|
|
&ins, 1, 1);
|
|
@@ -1082,11 +1079,10 @@ static noinline int cow_file_range(struct inode *inode,
|
|
|
delalloc_end, locked_page,
|
|
|
EXTENT_LOCKED | EXTENT_DELALLOC,
|
|
|
page_ops);
|
|
|
- if (disk_num_bytes < cur_alloc_size)
|
|
|
- disk_num_bytes = 0;
|
|
|
+ if (num_bytes < cur_alloc_size)
|
|
|
+ num_bytes = 0;
|
|
|
else
|
|
|
- disk_num_bytes -= cur_alloc_size;
|
|
|
- num_bytes -= cur_alloc_size;
|
|
|
+ num_bytes -= cur_alloc_size;
|
|
|
alloc_hint = ins.objectid + ins.offset;
|
|
|
start += cur_alloc_size;
|
|
|
extent_reserved = false;
|