Messages in this thread | | | Date | Thu, 22 Jul 2010 09:19:28 +1000 | From | Dave Chinner <> | Subject | Re: linux-next: OOPS at boot time |
| |
On Wed, Jul 21, 2010 at 12:29:07AM -0700, Andrew Morton wrote: > On Wed, 21 Jul 2010 15:20:07 +1000 Dave Chinner <david@fromorbit.com> 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 david@fromorbit.com
| |