diff options
author | Theodore Ts'o <tytso@mit.edu> | 2012-06-12 12:53:16 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-06-12 12:53:16 -0700 |
commit | 0a02698f2851f419aa75536afb5f040a5c9ce002 (patch) | |
tree | 282e61422ac7bba8cc19449d3da1555a273f4bbe | |
parent | 493c82bb54397d2f46d2067bcedf966ea6da691f (diff) | |
parent | df5d2e2b942bb263972fe30a4baafd68056e02bd (diff) | |
download | android_external_e2fsprogs-0a02698f2851f419aa75536afb5f040a5c9ce002.tar.gz android_external_e2fsprogs-0a02698f2851f419aa75536afb5f040a5c9ce002.tar.bz2 android_external_e2fsprogs-0a02698f2851f419aa75536afb5f040a5c9ce002.zip |
am df5d2e2b: e2fsck: handle an already recovered journal with a non-zero s_error field
* commit 'df5d2e2b942bb263972fe30a4baafd68056e02bd':
e2fsck: handle an already recovered journal with a non-zero s_error field
-rw-r--r-- | e2fsck/journal.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/e2fsck/journal.c b/e2fsck/journal.c index 155857d9..95affda3 100644 --- a/e2fsck/journal.c +++ b/e2fsck/journal.c @@ -798,6 +798,19 @@ no_has_journal: */ } + /* + * If we don't need to do replay the journal, check to see if + * the journal's errno is set; if so, we need to mark the file + * system as being corrupt and clear the journal's s_errno. + */ + if (!(sb->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER) && + 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; + mark_buffer_dirty(journal->j_sb_buffer); + } + e2fsck_journal_release(ctx, journal, reset, 0); return retval; } |