43 lines
1.4 KiB
Diff
43 lines
1.4 KiB
Diff
|
From 3a0171fd435765161406238c8df6f66e859ddd93 Mon Sep 17 00:00:00 2001
|
||
|
From: Don Zickus <dzickus@redhat.com>
|
||
|
Date: Wed, 22 Jul 2015 13:58:53 -0400
|
||
|
Subject: [PATCH 12/55] ppc64le sync grub.cfg changes to disk (#1212114)
|
||
|
|
||
|
After installing a new kernel, if a panic is induced, not all the kernel
|
||
|
pieces are on the disk (most importantly the grub.cfg changes). This can
|
||
|
lead to a hung system on a reboot because the older kernel can not be found.
|
||
|
|
||
|
Address this by forcing all the changes (mainly the fs meta data) to disk
|
||
|
before finishing the kernel package installation.
|
||
|
|
||
|
Tested by 'yum install kernel-...; 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
|
||
|
---
|
||
|
new-kernel-pkg | 8 ++++++++
|
||
|
1 file changed, 8 insertions(+)
|
||
|
|
||
|
diff --git a/new-kernel-pkg b/new-kernel-pkg
|
||
|
index 1f6ab39499f..90652da06b7 100755
|
||
|
--- a/new-kernel-pkg
|
||
|
+++ b/new-kernel-pkg
|
||
|
@@ -927,4 +927,12 @@ fi
|
||
|
# if we mounted the U-Boot directory, unmount it.
|
||
|
[ -n "$mounted" ] && umount $ubootDir
|
||
|
|
||
|
+# 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
|
||
|
+if [ "$ARCH" = "ppc64le" ]; then
|
||
|
+ sync && mountpoint -q /boot &&fsfreeze -f /boot && fsfreeze -u /boot
|
||
|
+fi
|
||
|
+
|
||
|
exit 0
|
||
|
--
|
||
|
2.17.1
|
||
|
|