代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/e2fsprogs 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
From dc4c71c6192f9709a2d833f9aa63d3463da6155a Mon Sep 17 00:00:00 2001
From: lihaotian <lihaotian9@huawei.com>
Date: Tue, 15 Dec 2020 11:46:07 +0000
Subject: [PATCH] e2fsck: exit journal recovery when find EIO, ENOMEM
errors
jbd2_journal_revocer() may fail when some error occers
such as ENOMEM. However, jsb->s_start is still cleared
by func e2fsck_journal_release(). This may break
consistency between metadata and data in disk. Sometimes,
failure in jbd2_journal_revocer() is temporary but retry
e2fsck will skip the journal recovery when the temporary
problem is fixed.
To fix this case, we use "fatal_error" instead "goto errout"
when recover journal failed. If journal recovery fails, we
will send error message to user and reserve the recovery
flags to recover the journal when try e2fsck again.
Fix issue: https://gitee.com/src-openeuler/e2fsprogs/issues/I4RZUT?from=project-issue
conflict: journal_recover -> jbd2_journal_recover
Reported-by: Liangyun <liangyun2@huawei.com>
Signed-off-by: Haotian Li <lihaotian9@huawei.com>
Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
---
e2fsck/journal.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/e2fsck/journal.c b/e2fsck/journal.c
index e83f3a9..a5f7088 100644
--- a/e2fsck/journal.c
+++ b/e2fsck/journal.c
@@ -942,6 +942,13 @@ static errcode_t recover_ext3_journal(e2fsck_t ctx)
goto errout;
retval = -jbd2_journal_recover(journal);
+ if (retval == EIO || retval == ENOMEM || retval == EXT2_ET_NO_MEMORY) {
+ ctx->fs->flags &= ~EXT2_FLAG_VALID;
+ com_err(ctx->program_name, 0,
+ _("Journal recovery failed "
+ "on %s, retval=%d \n"), ctx->device_name, retval);
+ fatal_error(ctx, 0);
+ }
if (retval)
goto errout;
--
2.21.1 (Apple Git-122.3)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。