On Thu, Apr 12, 2018 at 8:51 PM, Jayashree Mohan <jayashree2...@gmail.com> wrote: > Hi, > > We came across what seems to be a crash consistency bug on btrfs and > f2fs. When we create a symlink for a file and fsync the symlink, on > recovery from crash, the fsync-ed file is missing. > > You can reproduce this behaviour using this minimal workload : > > 1. symlink (foo, bar) > 2. open bar > 3. fsync bar > ----crash here---- > > When we recover, we find that file bar is missing. This behaviour > seems unexpected as the fsynced file is lost on a crash. ext4 and xfs > correctly recovers file bar. This seems like a bug. If not, could you > explain why? >
Not a bug. >From man 2 fsync: "Calling fsync() does not necessarily ensure that the entry in the directory containing the file has also reached disk. For that an explicit fsync() on a file descriptor for the directory is also needed." There is a reason why this behavior is not being reproduces in ext4/xfs, but you should be able to reproduce a similar issue like this: 1. symlink (foo, bar.tmp) 2. open bar.tmp 3. fsync bar.tmp 4. rename(bar.tmp, bar) 5. fsync bar ----crash here---- Thanks, Amir. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel