What's wrong with the standard procedure
1. open / create file
2. write to file
3. sync file
4. possibly rename file to final location
5. sync parent directory of file
Which compliant file systems don't guarantee that this is durable (notwithstanding disks that tell lies)?Maybe POSIX doesn't specify this exact sequence explicitly (don't know), but this is the folklore which you find everywhere, and it's just what you arrive at naturally when you consider the object model on which the API is built (where an object is an "open file", i.e. what fds reference). (I mentioned this: it's basically the model that git also adopts, except that git objects are immutable).