am 5886dc5c: am fada3660: e2fsck: correctly propagate error from journal to superblock
* commit '5886dc5cdcccd3d09a208d41d8c23748c25a2a22':
e2fsck: correctly propagate error from journal to superblock
diff --git a/e2fsck/journal.c b/e2fsck/journal.c
index bf15cfa..169aa40 100644
--- a/e2fsck/journal.c
+++ b/e2fsck/journal.c
@@ -844,15 +844,7 @@
if (journal->j_failed_commit) {
pctx.ino = journal->j_failed_commit;
fix_problem(ctx, PR_0_JNL_TXN_CORRUPT, &pctx);
- ctx->fs->super->s_state |= EXT2_ERROR_FS;
- ext2fs_mark_super_dirty(ctx->fs);
- }
-
-
- if (journal->j_superblock->s_errno) {
- ctx->fs->super->s_state |= EXT2_ERROR_FS;
- ext2fs_mark_super_dirty(ctx->fs);
- journal->j_superblock->s_errno = 0;
+ journal->j_superblock->s_errno = -EINVAL;
mark_buffer_dirty(journal->j_sb_buffer);
}
@@ -909,7 +901,13 @@
/* Set the superblock flags */
e2fsck_clear_recover(ctx, recover_retval);
- return recover_retval;
+
+ /*
+ * Do one last sanity check, and propagate journal->s_errno to
+ * the EXT2_ERROR_FS flag in the fs superblock if needed.
+ */
+ retval = e2fsck_check_ext3_journal(ctx);
+ return retval ? retval : recover_retval;
}
/*