Re: [f2fs-dev] Symlink not persisted even after fsync

2018-04-16 Thread Vijay Chidambaram
On Mon, Apr 16, 2018 at 7:07 PM, Dave Chinner wrote: > On Sun, Apr 15, 2018 at 07:10:52PM -0500, Vijay Chidambaram wrote: >> Thanks! As I mentioned before, this is useful. I have a follow-up >> question. Consider the following workload: >> >> creat foo >>

Re: [f2fs-dev] Symlink not persisted even after fsync

2018-04-16 Thread Vijay Chidambaram
On Mon, Apr 16, 2018 at 12:39 AM, Amir Goldstein wrote: > On Mon, Apr 16, 2018 at 3:10 AM, Vijay Chidambaram > wrote: > [...] >> Consider the following workload: >> >> creat foo >> link (foo, A/bar) >> fsync(foo) >> crash >> >> I

Re: [f2fs-dev] Symlink not persisted even after fsync

2018-04-16 Thread Vijay Chidambaram
On Mon, Apr 16, 2018 at 12:52 AM, Theodore Y. Ts'o wrote: > On Sun, Apr 15, 2018 at 07:10:52PM -0500, Vijay Chidambaram wrote: >> >> I don't think this is what the paper's ext3-fast does. All the paper >> says is if you have a file system where the fsync of a

Re: [f2fs-dev] Symlink not persisted even after fsync

2018-04-15 Thread Vijay Chidambaram
BSD and other > Unix systems, as well as Linux. Thanks! As I mentioned before, this is useful. I have a follow-up question. Consider the following workload: creat foo link (foo, A/bar) fsync(foo) crash In this case, after the file system recovers, do we expect foo's link count to be

Re: [f2fs-dev] Symlink not persisted even after fsync

2018-04-14 Thread Vijay Chidambaram
Hi Ted, On Sat, Apr 14, 2018 at 8:30 PM, Theodore Y. Ts'o wrote: > When you open "foo", the restulting file descriptor is not associated > with the symlink. The resulting file descriptor is the exact same > thing you would get if you had instead called: > > fd = open("/tmp/bar/quux", O_C

Re: [f2fs-dev] Symlink not persisted even after fsync

2018-04-14 Thread Vijay Chidambaram
ed I don't disagree with any of this. But you can imagine how this can be all be confusing to file-system developers and research groups who work on file systems: without formal documentation, what exactly should they test or support? Clearly current file system

Re: [f2fs-dev] Symlink not persisted even after fsync

2018-04-14 Thread Vijay Chidambaram
) -> fails but fd = open(symlink, O_CREAT|O_RDWR) -> succeeds (even if symlink already exists) fsync(fd) -> succeeds So perhaps fsync on "symlink" is unsupported behavior that varies from file system to file system? We saw ex

Re: [f2fs-dev] Symlink not persisted even after fsync

2018-04-13 Thread Vijay Chidambaram
t; >> Thanks for clarifying the crash recovery semantics of strictly >> metadata ordered filesystems. We had a follow-up question in this >> case. >> >> On Fri, Apr 13, 2018 at 8:16 AM, Amir Goldstein wrote: >> > On Fri, Apr 13, 2018 at 3:54 PM, Vijay Chidambaram &

Re: [f2fs-dev] Symlink not persisted even after fsync

2018-04-13 Thread Vijay Chidambaram
; 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 I'm guessing xfs/ext4 detect the symlink-fsync pattern and fsync the parent dir in our workload, but would miss it because of