Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Subject | Re: Random Oopses on 2.6.0-test1-mm2 | From | Felipe Alfaro Solana <> | Date | Sat, 26 Jul 2003 10:54:10 +0200 |
| |
On Sat, 2003-07-26 at 09:18, Apurva Mehta wrote: > Hi, > > I get random oopses while using 2.6.0-test1-mm2. I have attached the > oops message and also the ksymoops output. I get the same behaviour > with the 08int patch applied also. The OOPs message attached was > obtained on a 2.6.0-test1-mm2-08int.
Please, try the following patch... diff -puN fs/ext3/inode.c~ext3_getblk-race-fix-fix fs/ext3/inode.c --- 25/fs/ext3/inode.c~ext3_getblk-race-fix-fix 2003-07-19 22:59:50.000000000 -0700 +++ 25-akpm/fs/ext3/inode.c 2003-07-19 23:07:42.000000000 -0700 @@ -936,19 +936,17 @@ struct buffer_head *ext3_getblk(handle_t ext3_get_block instead, so it's not a problem. */ lock_buffer(bh); - if (!buffer_uptodate(bh)) { - BUFFER_TRACE(bh, "call get_create_access"); - fatal = ext3_journal_get_create_access(handle, bh); - if (!fatal) { - memset(bh->b_data, 0, - inode->i_sb->s_blocksize); - set_buffer_uptodate(bh); - } + BUFFER_TRACE(bh, "call get_create_access"); + fatal = ext3_journal_get_create_access(handle, bh); + if (!fatal && !buffer_uptodate(bh)) { + memset(bh->b_data, 0, inode->i_sb->s_blocksize); + set_buffer_uptodate(bh); } unlock_buffer(bh); BUFFER_TRACE(bh, "call ext3_journal_dirty_metadata"); err = ext3_journal_dirty_metadata(handle, bh); - if (!fatal) fatal = err; + if (!fatal) + fatal = err; } else { BUFFER_TRACE(bh, "not a new buffer"); } _
| ![\](/images/icornerr.gif) |