Spam wrote:
[...]
|> I thought reiser4 had its journaling and atomic commits. Am I
|> mistaken? I run reiser4 as primary fs on my test systems and it seem
|> to work as expected.
consider this:
save_file () {
write() /* what if the write flushes halfway through
* then crashes?
*/
blah() /* what if "blah" crashes? */
write()
}
Some apps need consistency across multiple files, but we don't even have
it on a single file. You need a new interface to do that. As you can
see, reiser4 has absolutely no way of knowing, anywhere in the above
code, when you're done writing -- and when the file is consistent.
AFAIK, all that has to be done now for this to work is for them to
finish the userland interface to the journalling and atomic commits that
already exist for kernel space. But so far, all that is truly atomic is
metadata operations -- chmod, mv, mkdir, touch, and rm/rmdir are all
atomic, so long as you only use them on a single file/dir. But this has
been true in reiserfs3, xfs, ext3, and others.