summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch')
-rw-r--r--meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch
new file mode 100644
index 0000000000..d679b25b1d
--- /dev/null
+++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch
@@ -0,0 +1,66 @@
1From 2c69c94217b6db083d601d4fd62d6ab6c1628fee Mon Sep 17 00:00:00 2001
2From: Lukas Czerner <lczerner@redhat.com>
3Date: Mon, 14 Jun 2021 15:27:25 +0200
4Subject: [PATCH] e2fsck: fix last mount/write time when e2fsck is forced
5
6With commit c52d930f e2fsck is no longer able to fix bad last
7mount/write time by default because it is conditioned on s_checkinterval
8not being zero, which it is by default.
9
10One place where it matters is when other e2fsprogs tools require to run
11full file system check before a certain operation. If the last mount
12time is for any reason in future, it will not allow it to run even if
13full e2fsck is ran.
14
15Fix it by checking the last mount/write time when the e2fsck is forced,
16except for the case where we know the system clock is broken.
17
18[ Reworked the conditionals so error messages claiming that the last
19 write/mount time were corrupted wouldn't be always printed when the
20 e2fsck was run with the -f option, thus causing 299 out of 372
21 regression tests to fail. -- TYT ]
22
23Fixes: c52d930f ("e2fsck: don't check for future superblock times if checkinterval == 0")
24Reported-by: Dusty Mabe <dustymabe@redhat.com>
25Signed-off-by: Lukas Czerner <lczerner@redhat.com>
26Signed-off-by: Theodore Ts'o <tytso@mit.edu>
27
28Upstream-Status: Backport [https://github.com/tytso/e2fsprogs/commit/2c69c94217b6db083d601d4fd62d6ab6c1628fee]
29Signed-off-by: Changqing Li <changqing.li@windriver.com>
30---
31 e2fsck/super.c | 12 ++++++------
32 1 file changed, 6 insertions(+), 6 deletions(-)
33
34diff --git a/e2fsck/super.c b/e2fsck/super.c
35index e1c3f935..31e2ffb2 100644
36--- a/e2fsck/super.c
37+++ b/e2fsck/super.c
38@@ -1038,9 +1038,9 @@ void check_super_block(e2fsck_t ctx)
39 * Check to see if the superblock last mount time or last
40 * write time is in the future.
41 */
42- if (!broken_system_clock && fs->super->s_checkinterval &&
43- !(ctx->flags & E2F_FLAG_TIME_INSANE) &&
44- fs->super->s_mtime > (__u32) ctx->now) {
45+ if (((ctx->options & E2F_OPT_FORCE) || fs->super->s_checkinterval) &&
46+ !broken_system_clock && !(ctx->flags & E2F_FLAG_TIME_INSANE) &&
47+ (fs->super->s_mtime > (__u32) ctx->now)) {
48 pctx.num = fs->super->s_mtime;
49 problem = PR_0_FUTURE_SB_LAST_MOUNT;
50 if (fs->super->s_mtime <= (__u32) ctx->now + ctx->time_fudge)
51@@ -1050,9 +1050,9 @@ void check_super_block(e2fsck_t ctx)
52 fs->flags |= EXT2_FLAG_DIRTY;
53 }
54 }
55- if (!broken_system_clock && fs->super->s_checkinterval &&
56- !(ctx->flags & E2F_FLAG_TIME_INSANE) &&
57- fs->super->s_wtime > (__u32) ctx->now) {
58+ if (((ctx->options & E2F_OPT_FORCE) || fs->super->s_checkinterval) &&
59+ !broken_system_clock && !(ctx->flags & E2F_FLAG_TIME_INSANE) &&
60+ (fs->super->s_wtime > (__u32) ctx->now)) {
61 pctx.num = fs->super->s_wtime;
62 problem = PR_0_FUTURE_SB_LAST_WRITE;
63 if (fs->super->s_wtime <= (__u32) ctx->now + ctx->time_fudge)
64--
652.25.1
66