generic: add test for fsync after renaming hard links of same file
authorFilipe Manana <fdmanana@suse.com>
Thu, 19 Jul 2018 18:02:20 +0000 (19:02 +0100)
committerEryu Guan <guaneryu@gmail.com>
Sat, 21 Jul 2018 17:44:30 +0000 (01:44 +0800)
commitb19c44702761c80cb8cc0347b1d16f09d1a0fb69
tree161ba816c1e4be3dd931ac03811c32cd9de64e51
parentb29b8b077e0502c9595de5dd605f836d3fd80453
generic: add test for fsync after renaming hard links of same file

Test that if we have a file with 2 (or more) hard links in the same
parent directory, rename of the hard links, rename one of the other
hard links to the old name of the hard link we renamed before,
create a new file in the same parent directory with the old name of
second hard link we renamed, fsync fsync this new file and power
fail, we will be able to mount again the filesystem and the new file
and all hard links exist.

This test is motivated by a bug found in btrfs, where mounting the
filesystem after the power failure resulted in failure with an errno
value of EEXIST, which is fixed by a patch for the linux kernel
titled:

  "Btrfs: fix mount failure after fsync due to hard link recreation"

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/502 [new file with mode: 0755]
tests/generic/502.out [new file with mode: 0644]
tests/generic/group