Re: How errorproof is ext2 fs?

Timothy A. Seufert (tas@mindspring.com)
Fri, 14 Sep 2001 23:39:22 -0700


Otto Wyss <otto.wyss@bluewin.ch> wrote:

>At least ext2 and probably all the journalling fs lacks a feature the HFS+
>from the Mac has (bad tongues might say "needs"), to keep open files
>without activity in a state where a crash has no effect. I don't know how
>it is done since I'm no fs expert but my experience with my Mac (resetting
>about once a month without loosing anything) shows that it's possible.

HFS+ (the file system, as opposed to implementations of it) has no
such feature.

In fact, HFS+ is probably more vulnerable to file system damage than
a FS like ext2, simply because it uses a B-Tree structure. B-Trees
have their purposes (such as searching the whole FS for a file
quickly, a capability very important to classic MacOS), but are
generally not as robust as a simple inode FS like ext2.

The only thing which prevents damage from being common on MacOS 9 is
the slow and unsophisticated MacOS 9 *implementation* of HFS+. I'm
pretty sure it is synchronous and single-threaded. And the MacOS
cache doesn't keep dirty buffers for any significant amount of time
(no more than ~0.5s I think). These things mean that at any given
point in time, the state of the HFS+ metadata on disk is probably
coherent or close to it.

As others have mentioned -- if you want FS crash resistance somewhat
more like MacOS 9, mount your ext2 filesystems sync. Be prepared for
a huge performance loss. But the correct thing to do is to figure
out why Linux is crashing and fix it -- Linux can and should stay up
for months or years.

Also, under Darwin (aka the MacOS X BSD layer), the likelihood of
damage to a HFS+ volume after a crash/reboot is significantly higher.
Darwin has a high performance async HFS+ implementation with a real
buffer cache behind it.

-- 
Tim Seufert
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/