Btrfs: fix wrong size for the reservation when doing, file pre-allocation.
authorMiao Xie <miaox@cn.fujitsu.com>
Thu, 6 Sep 2012 10:04:57 +0000 (04:04 -0600)
committerChris Mason <chris.mason@fusionio.com>
Mon, 1 Oct 2012 19:19:14 +0000 (15:19 -0400)
commit903889f462409c816893abd02d88636f7b4a7774
tree842dce20600c595ede74678ea259a872c86dd12b
parent69ce977a179750915e04fcc12bfbe33e6c8f5132
Btrfs: fix wrong size for the reservation when doing, file pre-allocation.

When we ran fsstress(a program in xfstests), the filesystem hung up when it
is full. It was because the space reserved in btrfs_fallocate() was wrong,
btrfs_fallocate() just used the size of the pre-allocation to reserve the
space, didn't took the block size aligning into account, so the size of
the reserved space was less than the allocated space, it caused the over
reserve problem and made the filesystem hung up when invoking cow_file_range().
Fix it.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
fs/btrfs/file.c