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
>>
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
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
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
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
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
) -> 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
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
&
; 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