Re: O_DIRECT please; Sybase 12.5

From: Andrew Morton (
Date: Thu Jul 05 2001 - 10:06:53 EST

Andrea Arcangeli wrote:
> On Fri, Jul 06, 2001 at 12:28:15AM +1000, Andrew Morton wrote:
> > ext3 journals data. That's unique and it breaks things (or rather,
> > things break it). It'd be trivial to support O_DIRECT in ext3's
> > writeback mode (metadata-only), but nobody uses that.
> I thought everybody uses metadata-only to avoid killing data-write
> performance.

ext3 has three modes:


        Data is journalled. Yes, this slows things down


        The default mode and the most popular. All data is written
        to disk prior to a commit. Write throughput is good, and
        you don't have uninitialised data in your files after a


        Metadata-only. Better write throughput (in dbench, anyway),
        but only metadata integrity is preserved after a crash. ie:
        fsck says the fs is fine, but files can (and almost always do)
        contain random stuff after a crash.

Ordered data mode is really nice. It's not magical though - for example,
if you reset the machine during a kernel build, a subsequent `make' will
fail because you have a number of .o files which have zero length.
That's the length they happened to have when the machine went down.

For ordered-data mode we need to keep track of all the buffers which
are associated with a transaction's journalled metadata and ensure that
they are written out before the transaction commits. That is done with
a little structure which hangs off ->b_private.

> So I thought it was ok to at first support O_DIRECT only
> for metadata journaling, doing that should be a three liner as you said
> and that is what I expected.

Yup. metadata-only journalling is all-round much, much simpler.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Sat Jul 07 2001 - 21:00:16 EST