grub2/grub-core
Javier Martinez Canillas 777276063e fs/xfs: Add needsrepair incompat feature support
The XFS now has an incompat feature flag to indicate that a filesystem
needs to be repaired. The Linux kernel refuses to mount the filesystem
that has it set and only the xfs_repair tool is able to clear that flag.

The GRUB doesn't have the concept of mounting filesystems and just
attempts to read the files. But it does some sanity checking before
attempting to read from the filesystem. Among the things which are tested,
is if the super block only has set of incompatible features flags that
are supported by GRUB. If it contains any flags that are not listed as
supported, reading the XFS filesystem fails.

Since the GRUB doesn't attempt to detect if the filesystem is inconsistent
nor replays the journal, the filesystem access is a best effort. For this
reason, ignore if the filesystem needs to be repaired and just print a debug
message. That way, if reading or booting fails later, the user is able to
figure out that the failures can be related to broken XFS filesystem.

Suggested-by: Eric Sandeen <esandeen@redhat.com>
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
2021-06-01 17:20:20 +02:00
..
boot A workaround for clang problem assembling startup_raw.S 2019-04-08 15:22:10 +10:00
bus usb/usbhub: Use GRUB_USB_MAX_CONF macro instead of literal in hub for maximum configs 2021-04-12 16:26:49 +02:00
commands i18n: Align N_() formatting with the rest of GRUB code 2021-05-10 15:07:58 +02:00
disk i18n: Format large integers before the translation message 2021-04-13 17:16:04 +02:00
efiemu i18n: Format large integers before the translation message 2021-04-13 17:16:04 +02:00
font font: Do not load more than one NAME section 2020-07-29 16:55:48 +02:00
fs fs/xfs: Add needsrepair incompat feature support 2021-06-01 17:20:20 +02:00
gdb gdb: Restrict GDB access when locked down 2021-03-02 15:54:15 +01:00
gettext verifiers: File type for fine-grained signature-verification controlling 2018-11-09 13:25:31 +01:00
gfxmenu gfxmenu/gui: Check printf() format in the gui_progress_bar and gui_label 2021-03-02 15:54:20 +01:00
hello * grub-core/commands/gptsync.c: Fix typographic quoting. 2012-03-03 13:05:08 +01:00
hook * grub-core/hook/datehook.c (grub_read_hook_datetime): Small stylistic 2011-11-11 21:03:49 +01:00
io io/gzio: Zero gzio->tl/td in init_dynamic_block() if huft_build() fails 2021-03-02 15:54:18 +01:00
kern kern/efi/sb: Remove duplicate efi_shim_lock_guid variable 2021-05-28 12:49:56 +02:00
lib fs: Use 64-bit type for filesystem timestamp 2021-06-01 17:19:13 +02:00
loader loader/i386/pc/linux: Use PRI* macros to get correct format string code across architectures 2021-03-10 14:59:26 +01:00
mmap mmap: Fix memory leak when iterating over mapped memory 2021-03-02 15:54:15 +01:00
net fs: Use 64-bit type for filesystem timestamp 2021-06-01 17:19:13 +02:00
normal fs: Use 64-bit type for filesystem timestamp 2021-06-01 17:19:13 +02:00
osdep disk: Rename grub_disk_get_size() to grub_disk_native_sectors() 2020-12-12 01:19:03 +01:00
partmap mbr: Warn if MBR gap is small and user uses advanced modules 2020-12-12 01:19:03 +01:00
parttool parttool/msdospart: grub_error() missing format string argument 2021-03-10 14:50:44 +01:00
script misc: Format string for grub_error() should be a literal 2021-03-10 14:50:44 +01:00
term term/terminfo: Fix the terminfo command help and documentation 2021-05-10 15:08:39 +02:00
tests fs: Use 64-bit type for filesystem timestamp 2021-06-01 17:19:13 +02:00
video video/fb/fbfill: Use unsigned integers for width/height 2021-04-12 16:56:45 +02:00
gdb_grub.in * grub-core/gdb_grub.in: Fix overflow and wrong field. 2013-10-14 03:40:20 +02:00
genemuinit.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genemuinitheader.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genmod.sh.in .mod files: Strip annobin annotations and .eh_frame, and their relocations 2018-03-05 14:08:22 +01:00
genmoddep.awk enforcing fixup 2017-08-14 16:27:10 +02:00
gensyminfo.sh.in Fix shebang for termux. 2017-05-03 12:49:31 +02:00
gensymlist.sh Make 'make check' work on emu. 2013-04-27 02:00:16 +02:00
gentrigtables.c * grub-core/gentrigtables.c: Make tables const. 2013-03-01 11:15:09 +01:00
gmodule.pl.in * grub-core/gmodule.pl.in: Accept newer binutils which output 2014-09-21 18:23:23 +02:00
Makefile.am kern/efi: Add initial stack protector implementation 2021-03-02 15:54:19 +01:00
Makefile.core.def kern/buffer: Add variable sized heap buffer 2021-03-02 15:54:19 +01:00
modinfo.sh.in Fix shebang for termux. 2017-05-03 12:49:31 +02:00