Subject: Re: linux-next: OOPS at boot time

From: Dave Chinner <[email-masked]>
Date: Thu, 22 Jul 2010 09:19:28 +1000

On Wed, Jul 21, 2010 at 12:29:07AM -0700, Andrew Morton wrote:
> On Wed, 21 Jul 2010 15:20:07 +1000 Dave Chinner <[email-masked]> wrote:
> 
> > > and they were dirtied within dquot_free_space().
> > 
> > AFAICT dquot_free_space() is called deep in the guts of
> > ext3_truncate() via dquot_free_block(), which is called directly
> > before end_writeback(). That should overwrite any state changes made
> > inside ext3_truncate. I wonder if iput_final() is racing with
> > something else here?
> > 
> 
> This isn't a race.  I type `make' and the warnings spew out at hundreds
> per second - every unlink, I'd say.
> 
> Did you try my .config?

Yes, I did - it was the second thing I tried after using my usual
.config (*).

I'm not an ext3 expert, so I might be missing something, but I
cannot see (from code inspection) where those flags are being set
after end_writeback is called.  My experience with inode flag
corruptions on XFS that can only be reprodued by a small number of
machines is that it is usually the result of a race condition.
It looks and smells similar to me.

Anyway, I'm not sure I can help much more at this point - until I
can reproduce it I'm just making SWAGs...

Cheers,

Dave.

(*) I eventually worked out that the ext3 corruption I was chasing
on that one filesystem was a result of using a kernel built with
your config because it didn't have CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
set and I did the equivalent of yanking the power cord to the VM
(I do that all the time) while that kernel was running...

-- 
Dave Chinner
[email-masked]