[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Just stirring the waters...

Richard Chan writes:
> Hi, now that Ingo+redhat have discovered the cause
> of the ext2 corruption under heavy load of 2.4.x
> a couple of -preX patches ago (BTW ext2/3 gurus - what is the
> difference between bforget() and brelse()

I'm not a guru, but my understanding of this is as follows:

- brelse() drops the current reference on the buffer, but if it is dirty
  it will be written to disk.
- bforget() drops the current reference on the buffer, but it will not
  be written to disk if we are the only user of the buffer.

- the buffer in question is requested from disk by ext2_get_block()
- the same block is modified in parallel by another thread
- ext2_get_block called "bforget", which would discard the changes 
  that the other thread made to the buffer -> corruption

> [My production servers are running ext3(6b)+2.2.19.]
> Of course the real reason for asking is...are the showstoppers
> to fielding ext3 on 2.4.X overcome?

Well, I think the biggest showstopper to ext3 on 2.4 is that it
hasn't been written yet.  However, I'm pretty much finished my
new online resizing code for ext3, so I'm going to start the port
of ext3 to 2.4 next (unless Stephen has an objection).  Basically,
I'll start with "null journaling" code in ext3 - I'll add the jfs
calls into ext3, but won't start on the real jfs code.  I know
Stephen wants to change this slightly before the final release.

Two things I'm interested in changing, however:
1) Rename jfs to jbd (to avoid conflict with IBM JFS) - I'm pretty
   sure that Stephen also wants to do this.
2) Allow ext3 to mount an unjournaled filesystem.  This will allow
   us to migrate to a single code base for both ext2 and ext3.

I'm not sure what Stephen thinks about this, and it won't be a priority
in my implementation, but at least something I'm thinking about.  I
will still keep the ext3 code separate from ext2 as it is now.  I'm also
wondering whether we should keep Daniel Philips' indexed directory code
in ext3 only.  That is for others to decide...

Cheers, Andreas
Andreas Dilger  \ "If a man ate a pound of pasta and a pound of antipasto,
                 \  would they cancel out, leaving him still hungry?"
http://www-mddsp.enel.ucalgary.ca/People/adilger/               -- Dogbert

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]