btrfs: use correct offset for reloc_inode in prealloc_file_extent_cluster()
authorWang Xiaoguang <wangxg.fnst@cn.fujitsu.com>
Mon, 25 Jul 2016 07:51:38 +0000 (15:51 +0800)
committerChris Mason <clm@fb.com>
Thu, 25 Aug 2016 10:58:24 +0000 (03:58 -0700)
commitdcb40c196fc85c6dfb28456480e5a882e26f567d
tree7cd6cdb47c6e1c970f20c708fea15c65a67f6dcf
parentdf2c95f33e0a28b22509e4ee85365eedf32a1056
btrfs: use correct offset for reloc_inode in prealloc_file_extent_cluster()

In prealloc_file_extent_cluster(), btrfs_check_data_free_space() uses
wrong file offset for reloc_inode, it uses cluster->start and cluster->end,
which indeed are extent's bytenr. The correct value should be
cluster->[start|end] minus block group's start bytenr.

start bytenr   cluster->start
|              |     extent      |   extent   | ...| extent |
|----------------------------------------------------------------|
|                block group reloc_inode                         |

Signed-off-by: Wang Xiaoguang <wangxg.fnst@cn.fujitsu.com>
Reviewed-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/relocation.c