===================================================================
@@ -2535,30 +2535,28 @@ static int ext3_sync_fs(struct super_blo
*/
static int ext3_freeze(struct super_block *sb)
{
- int error = 0;
+ int error;
journal_t *journal;
- if (!(sb->s_flags & MS_RDONLY)) {
- journal = EXT3_SB(sb)->s_journal;
+ if (sb->s_flags & MS_RDONLY)
+ return 0;
- /* Now we set up the journal barrier. */
- journal_lock_updates(journal);
+ journal = EXT3_SB(sb)->s_journal;
- /*
- * We don't want to clear needs_recovery flag when we failed
- * to flush the journal.
- */
- error = journal_flush(journal);
- if (error < 0)
- goto out;
-
- /* Journal blocked and flushed, clear needs_recovery flag. */
- EXT3_CLEAR_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER);
- error = ext3_commit_super(sb, EXT3_SB(sb)->s_es, 1);
- if (error)
- goto out;
- }
- return 0;
+ /* Now we set up the journal barrier. */
+ journal_lock_updates(journal);
+
+ /*
+ * We don't want to clear needs_recovery flag when we failed
+ * to flush the journal.
+ */
+ error = journal_flush(journal);
+ if (error < 0)
+ goto out;
+
+ /* Journal blocked and flushed, clear needs_recovery flag. */
+ EXT3_CLEAR_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER);
+ error = ext3_commit_super(sb, EXT3_SB(sb)->s_es, 1);
out:
journal_unlock_updates(journal);
@@ -2577,7 +2575,6 @@ static int ext3_unfreeze(struct super_bl
EXT3_SET_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER);
ext3_commit_super(sb, EXT3_SB(sb)->s_es, 1);
unlock_super(sb);
- journal_unlock_updates(EXT3_SB(sb)->s_journal);
}
return 0;
}