diff options
Diffstat (limited to 'fs/btrfs/ioctl.c')
| -rw-r--r-- | fs/btrfs/ioctl.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 12ae31e1813e..4f4b13830b25 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -1128,7 +1128,7 @@ static struct extent_map *defrag_lookup_extent(struct inode *inode, u64 start)  		/* get the big lock and read metadata off disk */  		lock_extent_bits(io_tree, start, end, &cached); -		em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, start, len, 0); +		em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, start, len);  		unlock_extent_cached(io_tree, start, end, &cached);  		if (IS_ERR(em)) @@ -3243,6 +3243,7 @@ static void btrfs_double_extent_lock(struct inode *inode1, u64 loff1,  static int btrfs_extent_same_range(struct inode *src, u64 loff, u64 len,  				   struct inode *dst, u64 dst_loff)  { +	const u64 bs = BTRFS_I(src)->root->fs_info->sb->s_blocksize;  	int ret;  	/* @@ -3250,7 +3251,7 @@ static int btrfs_extent_same_range(struct inode *src, u64 loff, u64 len,  	 * source range to serialize with relocation.  	 */  	btrfs_double_extent_lock(src, loff, dst, dst_loff, len); -	ret = btrfs_clone(src, dst, loff, len, len, dst_loff, 1); +	ret = btrfs_clone(src, dst, loff, len, ALIGN(len, bs), dst_loff, 1);  	btrfs_double_extent_unlock(src, loff, dst, dst_loff, len);  	return ret;  |