Whamcloud - gitweb
debugfs: manage needs_recover feature when messing with the journal
authorDarrick J. Wong <darrick.wong@oracle.com>
Fri, 19 Sep 2014 06:01:43 +0000 (02:01 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 19 Sep 2014 06:01:43 +0000 (02:01 -0400)
Set the needs_recover incompat feature when debugfs writes journal
transactions so that we actually replay the journal contents at the
next mount.

Likewise, clear it if we successfully recover the journal.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
debugfs/do_journal.c

index 711ed27..a17af6e 100644 (file)
@@ -158,6 +158,8 @@ static errcode_t journal_commit_trans(journal_transaction_t *trans)
        trans->flags &= ~J_TRANS_OPEN;
        trans->block++;
 
+       trans->fs->super->s_feature_incompat |= EXT3_FEATURE_INCOMPAT_RECOVER;
+       ext2fs_mark_super_dirty(trans->fs);
 error:
        if (cbh)
                brelse(cbh);
@@ -979,4 +981,9 @@ void do_journal_run(int argc, char *argv[])
        err = ext2fs_run_ext3_journal(&current_fs);
        if (err)
                com_err("journal_run", err, "while recovering journal");
+       else {
+               current_fs->super->s_feature_incompat &=
+                               ~EXT3_FEATURE_INCOMPAT_RECOVER;
+               ext2fs_mark_super_dirty(current_fs);
+       }
 }