]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: fix send file hole detection leading to data corruption
authorFilipe David Borba Manana <fdmanana@gmail.com>
Tue, 28 Jan 2014 01:38:06 +0000 (01:38 +0000)
committerChris Mason <clm@fb.com>
Wed, 29 Jan 2014 15:06:25 +0000 (07:06 -0800)
commita3689eb43b78889be0ed34a672ea7a60ae30ed2d
tree601f2590ec4d426938e015ebd476c24a1d522eb6
parent145ddd38e899adaa3204d4ddafed3cdbe204955d
Btrfs: fix send file hole detection leading to data corruption

There was a case where file hole detection was incorrect and it would
cause an incremental send to override a section of a file with zeroes.

This happened in the case where between the last leaf we processed which
contained a file extent item for our current inode and the leaf we're
currently are at (and has a file extent item for our current inode) there
are only leafs containing exclusively file extent items for our current
inode, and none of them was updated since the previous send operation.
The file hole detection code would incorrectly consider the file range
covered by these leafs as a hole.

A test case for xfstests follows soon.

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/send.c