
The problem with omitting the fsync in the case of an application is that you are violating your contract with the user. If I save a document then when the application says that the save is complete my document had damn well better be on my memory stick.
That is why there is a manual umount, instead of just "unplug and hope". It is not the application's responsibility to attempt to ensure bits hit non- volatile storage.
Users that expect to be able to just unplug a stick and walk away at any time DESERVE to have that expectation violated.
Windows users have that expectation and have that expectation met. When Windows tells me my copy is done, my copy is done and I can yank the memory stick. Yanking it in the middle of the copy will obviously cause a problem but that's not what we're talking about here. James