summarylogtreecommitdiffstats
path: root/xfs_freeze.patch
diff options
context:
space:
mode:
authorWilken 'Akiko' Gottwalt2021-05-27 09:29:01 +0200
committerWilken 'Akiko' Gottwalt2021-05-27 09:29:01 +0200
commit79b08b2af3a551bcc32dd469ef8b50666c581c14 (patch)
treea5fddf03bc13818aaac4fdeaf41f72ecead86e84 /xfs_freeze.patch
parent7c7ee87e51afb0b166e93fc399d39cf5c0729717 (diff)
downloadaur-79b08b2af3a551bcc32dd469ef8b50666c581c14.tar.gz
updated version to last maintained debian version (77)
Current binutils 2.36+ introduces an odd bug that causes the stage1 and stage2 files to bloat to over 100 MiB. This is not fixed yet.
Diffstat (limited to 'xfs_freeze.patch')
-rw-r--r--xfs_freeze.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/xfs_freeze.patch b/xfs_freeze.patch
new file mode 100644
index 000000000000..694456006bfd
--- /dev/null
+++ b/xfs_freeze.patch
@@ -0,0 +1,22 @@
+Index: b/util/grub-install.in
+===================================================================
+--- a/util/grub-install.in
++++ b/util/grub-install.in
+@@ -470,6 +470,17 @@
+ test -n "$mkimg" && img_file=`$mkimg`
+ test -n "$mklog" && log_file=`$mklog`
+
++# GRUB will try to verify that stage2 is accessible using its own
++# filesystem drivers. Make sure it's committed to disk.
++sync
++
++# On XFS, sync() is not enough.
++if [ x"`grub-probe --device-map=${device_map} -t fs ${grubdir}`" = "xxfs" ] ; then
++ xfs_freeze -f ${grubdir} && xfs_freeze -u ${grubdir}
++ # We don't have set -e. If xfs_freeze failed, it's worth trying anyway,
++ # maybe we're lucky.
++fi
++
+ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
+ count=5
+ tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`