[ ... usual call for 'O_PONIES' ... ]
> While you're right for the general case of course, there are
> many other failure conditions, that an UPS will not prevent,
> eg. kernel crashes.
> Therefore there is an vivid interest, that any storage based
> filesystems should stay consistent _any_ time (and usually
> filesystem developers spend an considerable amount of their
> time on fixing such problems, if they arise).
That's strictly speaking impossible, almost always undesirable,
and at the same time easy to achieve: if you want something like
that just mount with '-o sync' :-).
If you want that *and* excellent performance, just mount with
'-o ponies' instead :-).
If you want that *and* excellent performance *and* scalable
performance with small IO just mount with '-o unicorns' :-).
This topic has been already discussed a few times over in this
mailing list, and in the kernel mailing etc.; those who can get
it have gotten it, those who don't continue to whine.
The real problem is not so much the '-o ponies' (or '-o unicorns')
attitude, it is that even those who get it still have a hard time
with doing the right things because of limited or broken behaviour,
at all levels (from the POSIX semantics of 'fsync' to the Linux
page cache to the firmware of many drives).