Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
grub: fs/fat: Don't error when mtime is 0
A issue was found when I run "runqemu genericx86-64 ovmf", grub failed to boot, it's a known issue has been fixed in grub upstream, backport the fix. Signed-off-by: Ming Liu <liu.ming50@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Loading branch information
Showing
2 changed files
with
71 additions
and
0 deletions.
There are no files selected for viewing
70 changes: 70 additions & 0 deletions
70
meta/recipes-bsp/grub/files/0001-fs-fat-Don-t-error-when-mtime-is-0.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
From e43f3d93b28cce852c110c7a8e40d8311bcd8bb1 Mon Sep 17 00:00:00 2001 | ||
From: Robbie Harwood <rharwood@redhat.com> | ||
Date: Fri, 15 Jul 2022 16:13:02 -0400 | ||
Subject: [PATCH] fs/fat: Don't error when mtime is 0 | ||
MIME-Version: 1.0 | ||
Content-Type: text/plain; charset=UTF-8 | ||
Content-Transfer-Encoding: 8bit | ||
|
||
In the wild, we occasionally see valid ESPs where some file modification | ||
times are 0. For instance: | ||
|
||
├── [Dec 31 1979] EFI | ||
│ ├── [Dec 31 1979] BOOT | ||
│ │ ├── [Dec 31 1979] BOOTX64.EFI | ||
│ │ └── [Dec 31 1979] fbx64.efi | ||
│ └── [Jun 27 02:41] fedora | ||
│ ├── [Dec 31 1979] BOOTX64.CSV | ||
│ ├── [Dec 31 1979] fonts | ||
│ ├── [Mar 14 03:35] fw | ||
│ │ ├── [Mar 14 03:35] fwupd-359c1169-abd6-4a0d-8bce-e4d4713335c1.cap | ||
│ │ ├── [Mar 14 03:34] fwupd-9d255c4b-2d88-4861-860d-7ee52ade9463.cap | ||
│ │ └── [Mar 14 03:34] fwupd-b36438d8-9128-49d2-b280-487be02d948b.cap | ||
│ ├── [Dec 31 1979] fwupdx64.efi | ||
│ ├── [May 10 10:47] grub.cfg | ||
│ ├── [Jun 3 12:38] grub.cfg.new.new | ||
│ ├── [May 10 10:41] grub.cfg.old | ||
│ ├── [Jun 27 02:41] grubenv | ||
│ ├── [Dec 31 1979] grubx64.efi | ||
│ ├── [Dec 31 1979] mmx64.efi | ||
│ ├── [Dec 31 1979] shim.efi | ||
│ ├── [Dec 31 1979] shimx64.efi | ||
│ └── [Dec 31 1979] shimx64-fedora.efi | ||
└── [Dec 31 1979] FSCK0000.REC | ||
|
||
5 directories, 17 files | ||
|
||
This causes grub-probe failure, which in turn causes grub-mkconfig | ||
failure. They are valid filesystems that appear intact, and the Linux | ||
FAT stack is able to mount and manipulate them without complaint. | ||
|
||
The check for mtime of 0 has been present since | ||
20def1a3c3952982395cd7c3ea7e78638527962b (fat: support file | ||
modification times). | ||
|
||
Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/grub.git/commit/?id=e43f3d93b28cce852c110c7a8e40d8311bcd8bb1] | ||
|
||
Signed-off-by: Robbie Harwood <rharwood@redhat.com> | ||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com> | ||
Signed-off-by: Ming Liu <liu.ming50@gmail.com> | ||
--- | ||
grub-core/fs/fat.c | 3 --- | ||
1 file changed, 3 deletions(-) | ||
|
||
diff --git a/grub-core/fs/fat.c b/grub-core/fs/fat.c | ||
index 0951b2e63..c5efed724 100644 | ||
--- a/grub-core/fs/fat.c | ||
+++ b/grub-core/fs/fat.c | ||
@@ -1027,9 +1027,6 @@ grub_fat_dir (grub_device_t device, const char *path, grub_fs_dir_hook_t hook, | ||
grub_le_to_cpu16 (ctxt.dir.w_date), | ||
&info.mtime); | ||
#endif | ||
- if (info.mtimeset == 0) | ||
- grub_error (GRUB_ERR_OUT_OF_RANGE, | ||
- "invalid modification timestamp for %s", path); | ||
|
||
if (hook (ctxt.filename, &info, hook_data)) | ||
break; | ||
-- | ||
2.34.1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters