> On Wed, Jul 21, 2010 at 10:27 AM, Jan Kara <jack@xxxxxxx> wrote: > >> Signed-off-by: Patrick LoPresti <lopresti@xxxxxxxxx> > >> > >> diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c > >> index bc2ff59..c5a864f 100644 > >> --- a/fs/jbd2/journal.c > >> +++ b/fs/jbd2/journal.c > >> @@ -1365,6 +1365,8 @@ int jbd2_journal_check_used_features (journal_t *journal, unsigned long compat, > >> > >> if (!compat && !ro && !incompat) > >> return 1; > >> + if (journal_get_superblock(journal)) > >> + return 0; > >> if (journal->j_format_version == 1) > >> return 0; > > > > This looks OK in principle. It would be even nicer to avoid all the checks > > journal_get_superblock() when the superblock is actually loaded so that we > > don't do them each time jbd2_journal_check_used_features is called... > > How about this? > > if (!compat && !ro && !incompat) > return 1; > + if (journal->j_format_version == 0 && > journal_get_superblock(journal) != 0) > + return 0; > if (journal->j_format_version == 1) > return 0; > > journal_init_common() uses kzalloc() to allocate the journal_t, and > journal_get_superblock() fills it in, so I believe this is a valid > test. Yes, this looks OK. Just add a comment before the check like /* Load journal super block if it isn't loaded yet */ Honza -- Jan Kara <jack@xxxxxxx> SuSE CR Labs -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html