grub/grub-core
Daniel Kiper 14ed7207b1 xfs: Accept filesystem with sparse inodes
The sparse inode metadata format became a mkfs.xfs default in
xfsprogs-4.16.0, and such filesystems are now rejected by grub as
containing an incompatible feature.

In essence, this feature allows xfs to allocate inodes into fragmented
freespace.  (Without this feature, if xfs could not allocate contiguous
space for 64 new inodes, inode creation would fail.)

In practice, the disk format change is restricted to the inode btree,
which as far as I can tell is not used by grub.  If all you're doing
today is parsing a directory, reading an inode number, and converting
that inode number to a disk location, then ignoring this feature
should be fine, so I've added it to XFS_SB_FEAT_INCOMPAT_SUPPORTED

I did some brief testing of this patch by hacking up the regression
tests to completely fragment freespace on the test xfs filesystem, and
then write a large-ish number of inodes to consume any existing
contiguous 64-inode chunk.  This way any files the grub tests add and
traverse would be in such a fragmented inode allocation.  Tests passed,
but I'm not sure how to cleanly integrate that into the test harness.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
Tested-by: Chris Murphy <lists@colorremedies.com>
2020-09-21 13:19:10 -04:00
..
boot diskboot: Trivial correction on stale comments 2020-09-21 12:43:53 -04:00
bus ehci: Fix compilation on i386 2020-09-21 11:32:45 -04:00
commands disk: Update grub_gpt_partentry 2020-09-21 13:19:10 -04:00
disk disk: Update grub_gpt_partentry 2020-09-21 13:19:10 -04:00
efiemu x86-64: Treat R_X86_64_PLT32 as R_X86_64_PC32 2019-10-24 16:59:37 +02:00
font Document intentional fallthroughs. 2015-01-27 17:17:58 +01:00
fs xfs: Accept filesystem with sparse inodes 2020-09-21 13:19:10 -04:00
gdb i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03:00
gettext * grub-core/gettext/gettext.c (main_context), (secondary_context): 2013-11-07 01:01:47 +01:00
gfxmenu gfxmenu: fix memory leak 2016-01-12 21:52:50 +03:00
gnulib i386, x86_64, ppc: fix switch fallthrough cases with GCC7 2017-04-04 19:23:55 +03: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 bufio: Round up block size to power of 2 2020-09-21 13:19:10 -04:00
kern ieee1275: NULL pointer dereference in grub_machine_get_bootlocation() 2020-09-21 12:16:25 -04:00
lib disk: Update grub_gpt_partentry 2020-09-21 13:19:10 -04:00
loader chainloader: patch in BPB's sectors_per_track and num_heads 2020-09-21 12:16:25 -04:00
mmap Translate UEFI persistent memory type 2015-12-15 10:25:34 +03:00
net Add Virtual LAN support. 2020-09-21 11:32:45 -04:00
normal core: use GRUB_TERM_ definitions when handling term characters 2020-09-21 12:02:37 -04:00
osdep grub-probe: Don't skip /dev/mapper/dm-* devices 2020-09-21 13:19:10 -04:00
partmap disk: Update grub_gpt_partentry 2020-09-21 13:19:10 -04:00
parttool * grub-core/net/http.c: Add TRANSLATORS comments. 2012-03-05 16:42:26 +01:00
script yylex: Explicilty cast fprintf to void. 2020-09-21 12:02:37 -04:00
term core: use GRUB_TERM_ definitions when handling term characters 2020-09-21 12:02:37 -04:00
tests Regenerate checksum.h with newer unifont. 2020-09-21 12:02:37 -04:00
video efi/uga: Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA 2020-09-21 12:16:25 -04: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 2020-09-21 12:16:25 -04:00
genmoddep.awk enforcing fixup 2020-09-21 12:02:37 -04:00
gensyminfo.sh.in Fix shebang for termux. 2020-09-21 11:32:45 -04: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
gnulib-fix-gcc7-fallthrough.diff Add gnulib-fix-gcc7-fallthrough.diff 2017-04-04 19:37:47 +03:00
gnulib-fix-null-deref.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-fix-width.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-abort.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-gets.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
Makefile.am arm_coreboot: Support DMA. 2020-09-21 11:32:45 -04:00
Makefile.core.def fs: Add F2FS support 2020-09-21 12:43:53 -04:00
modinfo.sh.in Fix shebang for termux. 2020-09-21 11:32:45 -04:00