btrfs: Return right extent when fiemap gives unaligned offset and len.
authorQu Wenruo <quwenruo@cn.fujitsu.com>
Fri, 18 Jul 2014 01:55:43 +0000 (09:55 +0800)
committerChris Mason <clm@fb.com>
Tue, 19 Aug 2014 15:52:14 +0000 (08:52 -0700)
commit2c91943b5066314a8bb9f0a65584e5e4cd92ea63
tree612ffb1243b1a0a01caa40766b70af8adb34e378
parente2eca69dc6c09d968d69312b9899968a9b03a4a9
btrfs: Return right extent when fiemap gives unaligned offset and len.

When page aligned start and len passed to extent_fiemap(), the result is
good, but when start and len is not aligned, e.g. start = 1 and len =
4095 is passed to extent_fiemap(), it returns no extent.

The problem is that start and len is all rounded down which causes the
problem. This patch will round down start and round up (start + len) to
return right extent.

Reported-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/extent_io.c