On Mon, Apr 01, 2013 at 01:03:57PM +0400, Dmitry Monakhov wrote: > diff --git a/fs/ext4/super.c b/fs/ext4/super.c > index e3e6a06..280a918 100644 > --- a/fs/ext4/super.c > +++ b/fs/ext4/super.c > @@ -4436,13 +4436,14 @@ static void ext4_clear_journal_err(struct super_block *sb, > */ > int ext4_force_commit(struct super_block *sb) > { > - journal_t *journal; > + tid_t target; > > if (sb->s_flags & MS_RDONLY) > return 0; > > - journal = EXT4_SB(sb)->s_journal; > - return ext4_journal_force_commit(journal); > + if (jbd2_journal_start_commit(EXT4_SB(sb)->s_journal, &target)) > + return jbd2_log_wait_commit(EXT4_SB(sb)->s_journal, target); EXT4_SB(sb)->s_journal is NULL in no-journal mode. So you need to check for this --- this is something which is done in ext4_journal_force_commit(). Since this is the only user of ext4_journal_force_commit(), you might as well get rid of ext4_journal_force_commit() as part of making this change. The other possibility is we perhaps we should just change jbd2_journal_force_commit() to call jbd2_journal_start_commit() and jbd2_log_wait_commit(); the only other caller of jbd2_journal_force_commit() is ocfs2_sync_file(), and it would benefit from this change as well. - Ted -- 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