You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.3 KiB
39 lines
1.3 KiB
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
|
From: Don Zickus <dzickus@redhat.com> |
|
Date: Wed, 22 Jul 2015 13:59:55 -0400 |
|
Subject: [PATCH] ppc64le sync mkconfig to disk (#1212114) |
|
|
|
If creating a new grub2 entry using grub2-mkconfig, the entry is not |
|
immediately sync'd to disk. If a crash happens before the writeback, |
|
the subsequent reboot fails because the grub2.cfg is corrupted. |
|
|
|
Address this by forcing all the changes (mainly the fs meta data) to disk |
|
before finishing the grub2 conf changes. |
|
|
|
Tested by 'grub2-mkconfig -o /etc/grub22.cfg; echo c > /proc/sysrq-trigger'. |
|
|
|
Before, the machine would panic and on reboot be stuck without a grub.cfg |
|
to read. After, works as expected. |
|
|
|
Resolves: rhbz#1212114 |
|
--- |
|
util/grub-mkconfig.in | 9 +++++++++ |
|
1 file changed, 9 insertions(+) |
|
|
|
diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in |
|
index e029d0d5ea9..cf315e241f6 100644 |
|
--- a/util/grub-mkconfig.in |
|
+++ b/util/grub-mkconfig.in |
|
@@ -290,3 +290,12 @@ fi |
|
|
|
gettext "done" >&2 |
|
echo >&2 |
|
+ |
|
+# make sure changes make it to the disk. |
|
+# if /boot is a mountpoint, force the meta data on disk |
|
+# to by-pass writeback delay. |
|
+# PPC64LE-only to deal with Petitboot issues |
|
+ARCH=$(uname -m) |
|
+if [ "${ARCH}" = "ppc64le" ]; then |
|
+ sync && mountpoint -q /boot &&fsfreeze -f /boot && fsfreeze -u /boot |
|
+fi
|
|
|