kdump-error-handler.sh does nothing except calling three functions,
it can be easily merged into kdump.sh by using a parameter to run the
error handling routine.
kdump-lib-initramfs.sh was created to hold the three shared functions
and related code, so by merging these two files, kdump-lib-initramfs.sh
can be simplified by a lot.
Following up commits will clean up kdump-lib-initramfs.sh.
Signed-off-by: Kairui Song <kasong(a)redhat.com>
---
dracut-kdump-emergency.service | 2 +-
dracut-kdump-error-handler.sh | 10 ----------
dracut-kdump.sh | 21 ++++++++++++++++-----
dracut-module-setup.sh | 1 -
kexec-tools.spec | 2 --
5 files changed, 17 insertions(+), 19 deletions(-)
delete mode 100755 dracut-kdump-error-handler.sh
diff --git a/dracut-kdump-emergency.service b/dracut-kdump-emergency.service
index f2f6fadb..0cf70514 100644
--- a/dracut-kdump-emergency.service
+++ b/dracut-kdump-emergency.service
@@ -12,7 +12,7 @@ Environment=HOME=/
Environment=DRACUT_SYSTEMD=1
Environment=NEWROOT=/sysroot
WorkingDirectory=/
-ExecStart=/bin/kdump-error-handler.sh
+ExecStart=/bin/kdump.sh --error-handler
ExecStopPost=-/bin/rm -f -- /.console_lock
Type=oneshot
StandardInput=tty-force
diff --git a/dracut-kdump-error-handler.sh b/dracut-kdump-error-handler.sh
deleted file mode 100755
index fc2b9328..00000000
--- a/dracut-kdump-error-handler.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-. /lib/kdump-lib-initramfs.sh
-
-set -o pipefail
-export PATH=$PATH:$KDUMP_SCRIPT_DIR
-
-get_kdump_confs
-do_failure_action
-do_final_action
diff --git a/dracut-kdump.sh b/dracut-kdump.sh
index 3c165b3a..352cad56 100755
--- a/dracut-kdump.sh
+++ b/dracut-kdump.sh
@@ -1,9 +1,7 @@
#!/bin/sh
-
-# continue here only if we have to save dump.
-if [ -f /etc/fadump.initramfs ] && [ ! -f /proc/device-tree/rtas/ibm,kernel-dump
] && [ ! -f /proc/device-tree/ibm,opal/dump/mpipl-boot ]; then
- exit 0
-fi
+#
+# The main kdump routine in capture kernel
+#
. /lib/dracut-lib.sh
. /lib/kdump-lib-initramfs.sh
@@ -288,6 +286,19 @@ fence_kdump_notify()
fi
}
+if [ "$1" = "--error-handler" ]; then
+ get_kdump_confs
+ do_failure_action
+ do_final_action
+
+ exit $?
+fi
+
+# continue here only if we have to save dump.
+if [ -f /etc/fadump.initramfs ] && [ ! -f /proc/device-tree/rtas/ibm,kernel-dump
] && [ ! -f /proc/device-tree/ibm,opal/dump/mpipl-boot ]; then
+ exit 0
+fi
+
read_kdump_confs
fence_kdump_notify
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
index d5a710b9..227fdae8 100755
--- a/dracut-module-setup.sh
+++ b/dracut-module-setup.sh
@@ -1038,7 +1038,6 @@ install() {
inst "$moddir/kdump.sh" "/usr/bin/kdump.sh"
inst "$moddir/kdump-capture.service"
"$systemdsystemunitdir/kdump-capture.service"
systemctl -q --root "$initdir" add-wants initrd.target
kdump-capture.service
- inst "$moddir/kdump-error-handler.sh"
"/usr/bin/kdump-error-handler.sh"
# Replace existing emergency service and emergency target
cp "$moddir/kdump-emergency.service"
"$initdir/$systemdsystemunitdir/emergency.service"
cp "$moddir/kdump-emergency.target"
"$initdir/$systemdsystemunitdir/emergency.target"
diff --git a/kexec-tools.spec b/kexec-tools.spec
index 951c9d6e..ffb4730d 100644
--- a/kexec-tools.spec
+++ b/kexec-tools.spec
@@ -52,7 +52,6 @@ Source36: kdump-restart.sh
Source100: dracut-kdump.sh
Source101: dracut-module-setup.sh
Source102: dracut-monitor_dd_progress
-Source103: dracut-kdump-error-handler.sh
Source104: dracut-kdump-emergency.service
Source106: dracut-kdump-capture.service
Source107: dracut-kdump-emergency.target
@@ -241,7 +240,6 @@ mkdir -p -m755
$RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpba
cp %{SOURCE100}
$RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix
%{SOURCE100}}
cp %{SOURCE101}
$RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix
%{SOURCE101}}
cp %{SOURCE102}
$RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix
%{SOURCE102}}
-cp %{SOURCE103}
$RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix
%{SOURCE103}}
cp %{SOURCE104}
$RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix
%{SOURCE104}}
cp %{SOURCE106}
$RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix
%{SOURCE106}}
cp %{SOURCE107}
$RPM_BUILD_ROOT/etc/kdump-adv-conf/kdump_dracut_modules/99kdumpbase/%{remove_dracut_prefix
%{SOURCE107}}
--
2.31.1