It also happens to be what pretty much all network filesystems end up
implementing.
That said, there's a reason many people prefer local filesystems to even
high-performance NFS - latency (especially for metadata which even modern
versions of NFS cannot cache effectively) just sucks when you have to go
over the network. It pretty much doesn't matter _how_ fast your network or
server is.
One thing that might make sense is to make "close()" start background
writeout for that file (modulo issues like laptop mode) with low priority.
No, it obviously doesn't guarantee any kind of filesystem coherency, but
it _does_ mean that the window for the bad cases goes from potentially 30
seconds down to fractions of seconds. That's likely quite a bit of
improvement in practice.
IOW, no "hard barriers", but simply more of a "even in the absense of
fsync we simply aim for the user to have to be _really_ unlucky to ever
hit any bad cases".
Linus
--