2008/8/5 Stephen C. Tweedie <sct@xxxxxxxxxx>: > On Tue, 2008-08-05 at 00:51 +0100, Duane Griffin wrote: >> The __log_wait_for_space function sits in a loop checkpointing transactions >> until there is sufficient space free in the journal. However, if there are >> no transactions to be processed (e.g. because the free space calculation is >> wrong due to a corrupted filesystem) it will never progress. >> >> Check for space being required when no transactions are outstanding and >> abort the journal instead of endlessly looping. > > I'm not sure this is the right fix --- it seems like we're fixing the > symptoms, not the problem. > > The journal free space fields are reset in journal_reset() when we load > the journal, so we can't get this situation of j_free being insufficient > on an idle filesystem unless the main journal start/end pointers are > corrupt. > > Surely we'd be better off detecting this in the first place at mount > time, not later on during checkpoint? Sounds sensible. In fact I've got another patch, waiting for feedback from the reporter, that adds some very basic validation there (i.e. first > 0 && last >= first). Not enough, I suspect. I guess we could do much better? > Cheers, > Stephen Cheers, Duane. -- "I never could learn to drink that blood and call it wine" - Bob Dylan -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html