> They are not honouring the requirement for them to express that the data
> be on the disk when the rename is applied.
Right. There doesn't seem to be a way to do this without requiring that the data be written to disk right now. In these cases, the application is fine with delayed writes -- they just want the ordering of the write and the rename to be preserved.
> That's not wrong. It's just wrong if the application requires that the
> data be on disk after crash, which is what everyone is bitching about.
That isn't what the applications require though. The behaviour they are after is for the rename to be recorded only if the associated writes are also recorded.
It is acceptable if the rename is lost by a system crash. What is not acceptable is for the rename to occur but not the write.
If the application wanted to be sure that the data had been flushed, before the rename, then yes they should call fsync().