On Mar 07, 2008 01:31 +0000, Duane Griffin wrote: > If an error occurs during jbd2 cache initialisation it is possible for the > journal_head_cache to be NULL when jbd2_journal_destroy_journal_head_cache is > called. Replace the J_ASSERT with an if block to handle the situation > correctly. > > Note that even with this fix things will break badly if jbd2 is statically > compiled in and cache initialisation fails. It would probably be prudent to verify that these caches are initialized at journal_load() time and either re-try to create the cache, and/or report an error in that case and refuse to continue mounting. Also, I note that journal_init_journal_head_cache() is comparing pointers to "0", a style no-no... > Signed-off-by: Duane Griffin <duaneg@xxxxxxxxx> Acked-by: Andreas Dilger <adilger@xxxxxxx> > --- > fs/jbd2/journal.c | 7 ++++--- > 1 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c > index 96ba846..0d8a595 100644 > --- a/fs/jbd2/journal.c > +++ b/fs/jbd2/journal.c > @@ -1985,9 +1985,10 @@ static int journal_init_jbd2_journal_head_cache(void) > > static void jbd2_journal_destroy_jbd2_journal_head_cache(void) > { > - J_ASSERT(jbd2_journal_head_cache != NULL); > - kmem_cache_destroy(jbd2_journal_head_cache); > - jbd2_journal_head_cache = NULL; > + if (jbd2_journal_head_cache) { > + kmem_cache_destroy(jbd2_journal_head_cache); > + jbd2_journal_head_cache = NULL; > + } > } > > /* > -- > 1.5.3.7 > > -- > 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 Cheers, Andreas -- Andreas Dilger Sr. Staff Engineer, Lustre Group Sun Microsystems of Canada, Inc. -- 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