Btrfs: fix wrong i_size when truncating a file to a larger size
authorMiao Xie <miaox@cn.fujitsu.com>
Thu, 15 Dec 2011 01:12:01 +0000 (20:12 -0500)
committerChris Mason <chris.mason@oracle.com>
Thu, 15 Dec 2011 15:50:35 +0000 (10:50 -0500)
commitf4a2f4c548296168832ad4ab7e7f7b0cd0bf1214
tree10df3e81cc6a10253bb007858ee862a91c596335
parent5dbc8fca8ef5d719014f22345d990e957dcfc692
Btrfs: fix wrong i_size when truncating a file to a larger size

Btrfsck report error 100 after the 83th case of xfstests was run, it means
the i_size of the file is wrong.

The reason of this bug is that:
Btrfs increased i_size of the file at the beginning, but it failed to expand
the file, and failed to update the i_size to the old size because there is no
enough space in the file system, so we found a wrong i_size.

This patch fixes this bug by updating the i_size just when we pass the file
expanding and get enough space to update i-node.

Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c