generic: test attempt to dedup eof block into the middle of a file
authorFilipe Manana <fdmanana@suse.com>
Mon, 5 Nov 2018 11:14:45 +0000 (11:14 +0000)
committerEryu Guan <guaneryu@gmail.com>
Sun, 11 Nov 2018 14:00:23 +0000 (22:00 +0800)
commit91540ef980110f78161893f98d946e2afa0c1f4a
treeba9519276b8379b1a30262bbb13ef602005ce584
parent8e1e3cd84f53642d6e86710c89ff034bcdb4a066
generic: test attempt to dedup eof block into the middle of a file

Test that deduplication of an entire file that has a size that is not
aligned to the filesystem's block size into the middle of a different
file does not corrupt the destination's file data by reflinking the last
(eof) block.

This test is motivated by a bug recently found that affects both Btrfs
and XFS, and is fixed by the following commits/patches for the linux
kernel:

 07d19dc9fbe9 ("vfs: avoid problematic remapping requests into partial EOF block")
 dceeb47b0ed6 ("xfs: fix data corruption w/ unaligned dedupe ranges")
 de02b9f6bb65 ("Btrfs: fix data corruption when deduplicating between different files")
 Btrfs: fix infinite loop on inode eviction after deduplication of eof block

The VFS patch was added to kernel 4.20-rc1 and the XFS and first Btrfs
patches were added to kernel 4.19. The second patch for Btrfs is very
recent and it is not yet in Linus' tree.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/generic/517 [new file with mode: 0755]
tests/generic/517.out [new file with mode: 0644]
tests/generic/group