diff options
author | Theodore Ts'o <tytso@mit.edu> | 2012-06-12 14:52:29 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-06-12 14:52:29 -0700 |
commit | 63c2d4871fe374f13a0bc6e2efa341663277c123 (patch) | |
tree | 5b4c2d40fa115ca1296b3361b27958ad371f1f64 | |
parent | f67550728914cb76896ef58d833dd68b4c6d5048 (diff) | |
parent | 5886dc5cdcccd3d09a208d41d8c23748c25a2a22 (diff) | |
download | e2fsprogs-jb-mr2-dev.tar.gz |
am 5886dc5c: am fada3660: e2fsck: correctly propagate error from journal to superblockandroid-sdk-support_r11android-cts-4.2_r2android-cts-4.2_r1android-4.3_r3.1android-4.3_r3android-4.3_r2.3android-4.3_r2.2android-4.3_r2.1android-4.3_r2android-4.3_r1.1android-4.3_r1android-4.3_r0.9.1android-4.3_r0.9android-4.3.1_r1android-4.2_r1android-4.2_pre3android-4.2_pre2.2android-4.2_pre2.1android-4.2_pre2android-4.2_pre1.1android-4.2_pre1android-4.2.2_r1.2android-4.2.2_r1.1android-4.2.2_r1android-4.2.1_r1.2android-4.2.1_r1.1android-4.2.1_r1tools_r22.2tools_r22jb-mr2.0.0-releasejb-mr2.0-releasejb-mr2-releasejb-mr2-devjb-mr1.1-releasejb-mr1.1-dev-plus-aospjb-mr1.1-devjb-mr1-releasejb-mr1-factory-releasejb-mr1-dev-plus-aospjb-mr1-dev
* commit '5886dc5cdcccd3d09a208d41d8c23748c25a2a22':
e2fsck: correctly propagate error from journal to superblock
-rw-r--r-- | e2fsck/journal.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/e2fsck/journal.c b/e2fsck/journal.c index bf15cfa3..169aa401 100644 --- a/e2fsck/journal.c +++ b/e2fsck/journal.c @@ -844,15 +844,7 @@ static errcode_t recover_ext3_journal(e2fsck_t ctx) 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 @@ int e2fsck_run_ext3_journal(e2fsck_t ctx) /* 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; } /* |