Kdump service will create fadump initramfs when needed, but it won't clean up the fadump initramfs on kernel uninstall. So create a kernel install hook to do the clean up job.
Signed-off-by: Hari Bathini hbathini@linux.ibm.com ---
* Could have had 60-kdump.install.ppc64 that takes care of both kdump & fadump cleanup for ppc64 but that needs kdump cleanup code to be maintained in two files. So, preferred to go with a separate install file (60-fadump.install) instead.
Changes in v2: * Added cleanup of kernel version based checksum file.
60-fadump.install | 32 ++++++++++++++++++++++++++++++++ kexec-tools.spec | 3 +++ 2 files changed, 35 insertions(+) create mode 100755 60-fadump.install
diff --git a/60-fadump.install b/60-fadump.install new file mode 100755 index 0000000..c317d9c --- /dev/null +++ b/60-fadump.install @@ -0,0 +1,32 @@ +#!/usr/bin/bash + +COMMAND="$1" +KERNEL_VERSION="$2" + +if ! [[ ${KERNEL_INSTALL_MACHINE_ID-x} ]]; then + exit 0 +fi + +# Currently, fadump is supported only in environments with +# writable /boot directory. +if [[ ! -w "/boot" ]]; then + exit 0 +fi + +FADUMP_INITRD_DIR_ABS="/boot" +FADUMP_INITRD=".initramfs-${KERNEL_VERSION}.img.default" +FADUMP_INITRD_CHECKSUM=".fadump_initrd_checksum.${KERNEL_VERSION}" + +ret=0 +case "$COMMAND" in + add) + # Do nothing, fadump initramfs is strictly host only + # and managed by kdump service + ;; + remove) + rm -f -- "$FADUMP_INITRD_DIR_ABS/$FADUMP_INITRD" + rm -f -- "$FADUMP_INITRD_DIR_ABS/$FADUMP_INITRD_CHECKSUM" + ret=$? + ;; +esac +exit $ret diff --git a/kexec-tools.spec b/kexec-tools.spec index bfa7a5b..d4c3590 100644 --- a/kexec-tools.spec +++ b/kexec-tools.spec @@ -38,6 +38,7 @@ Source33: 92-crashkernel.install Source34: crashkernel-howto.txt Source35: kdump-migrate-action.sh Source36: kdump-restart.sh +Source37: 60-fadump.install
####################################### # These are sources for mkdumpramfs @@ -203,6 +204,7 @@ install -m 644 %{SOURCE13} $RPM_BUILD_ROOT%{_udevrulesdir}/98-kexec.rules %endif %ifarch ppc64 ppc64le install -m 644 %{SOURCE14} $RPM_BUILD_ROOT%{_udevrulesdir}/98-kexec.rules +install -m 755 -D %{SOURCE37} $RPM_BUILD_ROOT%{_prefix}/lib/kernel/install.d/60-fadump.install %endif install -m 644 %{SOURCE15} $RPM_BUILD_ROOT%{_mandir}/man5/kdump.conf.5 install -m 644 %{SOURCE16} $RPM_BUILD_ROOT%{_unitdir}/kdump.service @@ -365,6 +367,7 @@ fi %endif %ifarch ppc64 ppc64le /usr/sbin/mkfadumprd +%{_prefix}/lib/kernel/install.d/60-fadump.install %endif /usr/sbin/mkdumprd /usr/sbin/vmcore-dmesg