Comment 118 for bug 317781

Revision history for this message
Theodore Ts'o (tytso) wrote :

So a couple of things, since this has gone totally out of control.

First of all, ZFS also has delayed allocation (also called "allocate on flush"). That means it will suffer similar issues if you crash without doing an f*sync(), and the page cache hasn't been flushed out yet. Solaris partisans will probably say, "But Solaris is so reliable, it doesn't crash", which is an acceptable response. It's true of Linux too, but apparently Ubuntu has too many unstable proprietary drivers. :-)

Secondly, you can turn off delayed allocation for ext4. If you mount the filesystem with the nodelalloc mount option, you will basically get the old ext3 behaviour with data=ordered. You will also lose many of the performance gains of ext4, and the files will tend to be more fragmented as a result, but if you have crappy drivers, and you're convinced your system will randomly crash, that may be your best move. Personally, that's not the Linux I use, but I'm not using proprietary drivers.

As far as including the 3 queued-for-2.6.30 patches in question, they are very low-risk, so I think it's fair for Ubuntu to consider including them; if not, and if you don't have confidence about the stability if your kernel, probably your best bet is to just include nodelalloc as a default mount option for now, or patch ext4 to use nodelalloc as a the default, and allow people who want delayed allocation to request it via a mount option delalloc. This used to be the default, until we were confident with the delalloc code.

Finally, I'll note that Fedora folks haven't really been complaining about this, so far as I know. Which should make people ask the question, "why is Ubuntu different"?