| Message ID | 20220221080815.1979337-1-changqing.li@windriver.com |
|---|---|
| State | Accepted, archived |
| Commit | 9fe70a643a2d8723001421a18b5736e70a1eaa34 |
| Headers | show |
| Series | [hardknott] e2fsprogs: backport to fix one regression | expand |
I am seeing
CmdError('quilt --quiltrc
/mnt/b/yoe/master/build/tmp/work/x86_64-linux/e2fsprogs-native/1.46.5-r0/recipe-sysroot-native/etc/quiltrc
push', 0, 'stdout: Applying patch
0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch
patching file e2fsck/super.c
Hunk #1 FAILED at 1038.
Hunk #2 FAILED at 1050.
2 out of 2 hunks FAILED -- rejects in file e2fsck/super.c
Patch 0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch
can be reverse-applied
On Mon, Feb 21, 2022 at 12:08 AM Changqing Li
<changqing.li@windriver.com> wrote:
>
> From: Changqing Li <changqing.li@windriver.com>
>
> Backport a patch in 1.46.3 which fix one regression:
> This is what the changelog says:
> Fix e2fsck so that the if the s_interval is zero, and the last mount
> or write time is in the future, it will fix invalid last mount/write
> timestamps in the superblock. (This was a regression introduced in
> v1.45.5.)
>
> Signed-off-by: Changqing Li <changqing.li@windriver.com>
> ---
> meta/recipes-devtools/e2fsprogs/e2fsprogs.inc | 3 +-
> ...mount-write-time-when-e2fsck-is-forc.patch | 66 +++++++++++++++++++
> 2 files changed, 68 insertions(+), 1 deletion(-)
> create mode 100644 meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch
>
> diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
> index fb02b2006e..1250a9b99c 100644
> --- a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
> +++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc
> @@ -19,7 +19,8 @@ LIC_FILES_CHKSUM = "file://NOTICE;md5=d50be0580c0b0a7fbc7a4830bbe6c12b \
> SECTION = "base"
> DEPENDS = "util-linux attr autoconf-archive"
>
> -SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master"
> +SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master \
> + file://0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch"
> S = "${WORKDIR}/git"
>
> inherit autotools gettext texinfo pkgconfig multilib_header update-alternatives ptest
> 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 @@
> +From 2c69c94217b6db083d601d4fd62d6ab6c1628fee Mon Sep 17 00:00:00 2001
> +From: Lukas Czerner <lczerner@redhat.com>
> +Date: Mon, 14 Jun 2021 15:27:25 +0200
> +Subject: [PATCH] e2fsck: fix last mount/write time when e2fsck is forced
> +
> +With commit c52d930f e2fsck is no longer able to fix bad last
> +mount/write time by default because it is conditioned on s_checkinterval
> +not being zero, which it is by default.
> +
> +One place where it matters is when other e2fsprogs tools require to run
> +full file system check before a certain operation. If the last mount
> +time is for any reason in future, it will not allow it to run even if
> +full e2fsck is ran.
> +
> +Fix it by checking the last mount/write time when the e2fsck is forced,
> +except for the case where we know the system clock is broken.
> +
> +[ Reworked the conditionals so error messages claiming that the last
> + write/mount time were corrupted wouldn't be always printed when the
> + e2fsck was run with the -f option, thus causing 299 out of 372
> + regression tests to fail. -- TYT ]
> +
> +Fixes: c52d930f ("e2fsck: don't check for future superblock times if checkinterval == 0")
> +Reported-by: Dusty Mabe <dustymabe@redhat.com>
> +Signed-off-by: Lukas Czerner <lczerner@redhat.com>
> +Signed-off-by: Theodore Ts'o <tytso@mit.edu>
> +
> +Upstream-Status: Backport [https://github.com/tytso/e2fsprogs/commit/2c69c94217b6db083d601d4fd62d6ab6c1628fee]
> +Signed-off-by: Changqing Li <changqing.li@windriver.com>
> +---
> + e2fsck/super.c | 12 ++++++------
> + 1 file changed, 6 insertions(+), 6 deletions(-)
> +
> +diff --git a/e2fsck/super.c b/e2fsck/super.c
> +index e1c3f935..31e2ffb2 100644
> +--- a/e2fsck/super.c
> ++++ b/e2fsck/super.c
> +@@ -1038,9 +1038,9 @@ void check_super_block(e2fsck_t ctx)
> + * Check to see if the superblock last mount time or last
> + * write time is in the future.
> + */
> +- if (!broken_system_clock && fs->super->s_checkinterval &&
> +- !(ctx->flags & E2F_FLAG_TIME_INSANE) &&
> +- fs->super->s_mtime > (__u32) ctx->now) {
> ++ if (((ctx->options & E2F_OPT_FORCE) || fs->super->s_checkinterval) &&
> ++ !broken_system_clock && !(ctx->flags & E2F_FLAG_TIME_INSANE) &&
> ++ (fs->super->s_mtime > (__u32) ctx->now)) {
> + pctx.num = fs->super->s_mtime;
> + problem = PR_0_FUTURE_SB_LAST_MOUNT;
> + if (fs->super->s_mtime <= (__u32) ctx->now + ctx->time_fudge)
> +@@ -1050,9 +1050,9 @@ void check_super_block(e2fsck_t ctx)
> + fs->flags |= EXT2_FLAG_DIRTY;
> + }
> + }
> +- if (!broken_system_clock && fs->super->s_checkinterval &&
> +- !(ctx->flags & E2F_FLAG_TIME_INSANE) &&
> +- fs->super->s_wtime > (__u32) ctx->now) {
> ++ if (((ctx->options & E2F_OPT_FORCE) || fs->super->s_checkinterval) &&
> ++ !broken_system_clock && !(ctx->flags & E2F_FLAG_TIME_INSANE) &&
> ++ (fs->super->s_wtime > (__u32) ctx->now)) {
> + pctx.num = fs->super->s_wtime;
> + problem = PR_0_FUTURE_SB_LAST_WRITE;
> + if (fs->super->s_wtime <= (__u32) ctx->now + ctx->time_fudge)
> +--
> +2.25.1
> +
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#162017): https://lists.openembedded.org/g/openembedded-core/message/162017
> Mute This Topic: https://lists.openembedded.org/mt/89289488/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
On 2/22/22 1:15 AM, Khem Raj wrote: > [Please note: This e-mail is from an EXTERNAL e-mail address] > > I am seeing > > CmdError('quilt --quiltrc > /mnt/b/yoe/master/build/tmp/work/x86_64-linux/e2fsprogs-native/1.46.5-r0/recipe-sysroot-native/etc/quiltrc > push', 0, 'stdout: Applying patch > 0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch > patching file e2fsck/super.c > Hunk #1 FAILED at 1038. > Hunk #2 FAILED at 1050. > 2 out of 2 hunks FAILED -- rejects in file e2fsck/super.c > Patch 0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch > can be reverse-applied Hi, This patch is only for hardknott branch, which has version 1.46.1. Regards Changqing > > On Mon, Feb 21, 2022 at 12:08 AM Changqing Li > <changqing.li@windriver.com> wrote: >> From: Changqing Li <changqing.li@windriver.com> >> >> Backport a patch in 1.46.3 which fix one regression: >> This is what the changelog says: >> Fix e2fsck so that the if the s_interval is zero, and the last mount >> or write time is in the future, it will fix invalid last mount/write >> timestamps in the superblock. (This was a regression introduced in >> v1.45.5.) >> >> Signed-off-by: Changqing Li <changqing.li@windriver.com> >> --- >> meta/recipes-devtools/e2fsprogs/e2fsprogs.inc | 3 +- >> ...mount-write-time-when-e2fsck-is-forc.patch | 66 +++++++++++++++++++ >> 2 files changed, 68 insertions(+), 1 deletion(-) >> create mode 100644 meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch >> >> diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc >> index fb02b2006e..1250a9b99c 100644 >> --- a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc >> +++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc >> @@ -19,7 +19,8 @@ LIC_FILES_CHKSUM = "file://NOTICE;md5=d50be0580c0b0a7fbc7a4830bbe6c12b \ >> SECTION = "base" >> DEPENDS = "util-linux attr autoconf-archive" >> >> -SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master" >> +SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master \ >> + file://0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch" >> S = "${WORKDIR}/git" >> >> inherit autotools gettext texinfo pkgconfig multilib_header update-alternatives ptest >> 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 @@ >> +From 2c69c94217b6db083d601d4fd62d6ab6c1628fee Mon Sep 17 00:00:00 2001 >> +From: Lukas Czerner <lczerner@redhat.com> >> +Date: Mon, 14 Jun 2021 15:27:25 +0200 >> +Subject: [PATCH] e2fsck: fix last mount/write time when e2fsck is forced >> + >> +With commit c52d930f e2fsck is no longer able to fix bad last >> +mount/write time by default because it is conditioned on s_checkinterval >> +not being zero, which it is by default. >> + >> +One place where it matters is when other e2fsprogs tools require to run >> +full file system check before a certain operation. If the last mount >> +time is for any reason in future, it will not allow it to run even if >> +full e2fsck is ran. >> + >> +Fix it by checking the last mount/write time when the e2fsck is forced, >> +except for the case where we know the system clock is broken. >> + >> +[ Reworked the conditionals so error messages claiming that the last >> + write/mount time were corrupted wouldn't be always printed when the >> + e2fsck was run with the -f option, thus causing 299 out of 372 >> + regression tests to fail. -- TYT ] >> + >> +Fixes: c52d930f ("e2fsck: don't check for future superblock times if checkinterval == 0") >> +Reported-by: Dusty Mabe <dustymabe@redhat.com> >> +Signed-off-by: Lukas Czerner <lczerner@redhat.com> >> +Signed-off-by: Theodore Ts'o <tytso@mit.edu> >> + >> +Upstream-Status: Backport [https://github.com/tytso/e2fsprogs/commit/2c69c94217b6db083d601d4fd62d6ab6c1628fee] >> +Signed-off-by: Changqing Li <changqing.li@windriver.com> >> +--- >> + e2fsck/super.c | 12 ++++++------ >> + 1 file changed, 6 insertions(+), 6 deletions(-) >> + >> +diff --git a/e2fsck/super.c b/e2fsck/super.c >> +index e1c3f935..31e2ffb2 100644 >> +--- a/e2fsck/super.c >> ++++ b/e2fsck/super.c >> +@@ -1038,9 +1038,9 @@ void check_super_block(e2fsck_t ctx) >> + * Check to see if the superblock last mount time or last >> + * write time is in the future. >> + */ >> +- if (!broken_system_clock && fs->super->s_checkinterval && >> +- !(ctx->flags & E2F_FLAG_TIME_INSANE) && >> +- fs->super->s_mtime > (__u32) ctx->now) { >> ++ if (((ctx->options & E2F_OPT_FORCE) || fs->super->s_checkinterval) && >> ++ !broken_system_clock && !(ctx->flags & E2F_FLAG_TIME_INSANE) && >> ++ (fs->super->s_mtime > (__u32) ctx->now)) { >> + pctx.num = fs->super->s_mtime; >> + problem = PR_0_FUTURE_SB_LAST_MOUNT; >> + if (fs->super->s_mtime <= (__u32) ctx->now + ctx->time_fudge) >> +@@ -1050,9 +1050,9 @@ void check_super_block(e2fsck_t ctx) >> + fs->flags |= EXT2_FLAG_DIRTY; >> + } >> + } >> +- if (!broken_system_clock && fs->super->s_checkinterval && >> +- !(ctx->flags & E2F_FLAG_TIME_INSANE) && >> +- fs->super->s_wtime > (__u32) ctx->now) { >> ++ if (((ctx->options & E2F_OPT_FORCE) || fs->super->s_checkinterval) && >> ++ !broken_system_clock && !(ctx->flags & E2F_FLAG_TIME_INSANE) && >> ++ (fs->super->s_wtime > (__u32) ctx->now)) { >> + pctx.num = fs->super->s_wtime; >> + problem = PR_0_FUTURE_SB_LAST_WRITE; >> + if (fs->super->s_wtime <= (__u32) ctx->now + ctx->time_fudge) >> +-- >> +2.25.1 >> + >> -- >> 2.25.1 >> >> >> -=-=-=-=-=-=-=-=-=-=-=- >> Links: You receive all messages sent to this group. >> View/Reply Online (#162017): https://lists.openembedded.org/g/openembedded-core/message/162017 >> Mute This Topic: https://lists.openembedded.org/mt/89289488/1997914 >> Group Owner: openembedded-core+owner@lists.openembedded.org >> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com] >> -=-=-=-=-=-=-=-=-=-=-=- >>
diff --git a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc index fb02b2006e..1250a9b99c 100644 --- a/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc +++ b/meta/recipes-devtools/e2fsprogs/e2fsprogs.inc @@ -19,7 +19,8 @@ LIC_FILES_CHKSUM = "file://NOTICE;md5=d50be0580c0b0a7fbc7a4830bbe6c12b \ SECTION = "base" DEPENDS = "util-linux attr autoconf-archive" -SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master" +SRC_URI = "git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git;branch=master \ + file://0001-e2fsck-fix-last-mount-write-time-when-e2fsck-is-forc.patch" S = "${WORKDIR}/git" inherit autotools gettext texinfo pkgconfig multilib_header update-alternatives ptest 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 @@ +From 2c69c94217b6db083d601d4fd62d6ab6c1628fee Mon Sep 17 00:00:00 2001 +From: Lukas Czerner <lczerner@redhat.com> +Date: Mon, 14 Jun 2021 15:27:25 +0200 +Subject: [PATCH] e2fsck: fix last mount/write time when e2fsck is forced + +With commit c52d930f e2fsck is no longer able to fix bad last +mount/write time by default because it is conditioned on s_checkinterval +not being zero, which it is by default. + +One place where it matters is when other e2fsprogs tools require to run +full file system check before a certain operation. If the last mount +time is for any reason in future, it will not allow it to run even if +full e2fsck is ran. + +Fix it by checking the last mount/write time when the e2fsck is forced, +except for the case where we know the system clock is broken. + +[ Reworked the conditionals so error messages claiming that the last + write/mount time were corrupted wouldn't be always printed when the + e2fsck was run with the -f option, thus causing 299 out of 372 + regression tests to fail. -- TYT ] + +Fixes: c52d930f ("e2fsck: don't check for future superblock times if checkinterval == 0") +Reported-by: Dusty Mabe <dustymabe@redhat.com> +Signed-off-by: Lukas Czerner <lczerner@redhat.com> +Signed-off-by: Theodore Ts'o <tytso@mit.edu> + +Upstream-Status: Backport [https://github.com/tytso/e2fsprogs/commit/2c69c94217b6db083d601d4fd62d6ab6c1628fee] +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + e2fsck/super.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/e2fsck/super.c b/e2fsck/super.c +index e1c3f935..31e2ffb2 100644 +--- a/e2fsck/super.c ++++ b/e2fsck/super.c +@@ -1038,9 +1038,9 @@ void check_super_block(e2fsck_t ctx) + * Check to see if the superblock last mount time or last + * write time is in the future. + */ +- if (!broken_system_clock && fs->super->s_checkinterval && +- !(ctx->flags & E2F_FLAG_TIME_INSANE) && +- fs->super->s_mtime > (__u32) ctx->now) { ++ if (((ctx->options & E2F_OPT_FORCE) || fs->super->s_checkinterval) && ++ !broken_system_clock && !(ctx->flags & E2F_FLAG_TIME_INSANE) && ++ (fs->super->s_mtime > (__u32) ctx->now)) { + pctx.num = fs->super->s_mtime; + problem = PR_0_FUTURE_SB_LAST_MOUNT; + if (fs->super->s_mtime <= (__u32) ctx->now + ctx->time_fudge) +@@ -1050,9 +1050,9 @@ void check_super_block(e2fsck_t ctx) + fs->flags |= EXT2_FLAG_DIRTY; + } + } +- if (!broken_system_clock && fs->super->s_checkinterval && +- !(ctx->flags & E2F_FLAG_TIME_INSANE) && +- fs->super->s_wtime > (__u32) ctx->now) { ++ if (((ctx->options & E2F_OPT_FORCE) || fs->super->s_checkinterval) && ++ !broken_system_clock && !(ctx->flags & E2F_FLAG_TIME_INSANE) && ++ (fs->super->s_wtime > (__u32) ctx->now)) { + pctx.num = fs->super->s_wtime; + problem = PR_0_FUTURE_SB_LAST_WRITE; + if (fs->super->s_wtime <= (__u32) ctx->now + ctx->time_fudge) +-- +2.25.1 +