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@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html