LGTM
Acked-by: Tao Liu <ltao(a)redhat.com>
On Mon, Oct 30, 2023 at 2:52 PM Lichen Liu <lichliu(a)redhat.com> wrote:
Currently is_system_modified will return immediately when check_*_modified
return a non-zero value, and the remaining checks will not be executed.
For example, if there is a fs-related error exists, and someone changes the
kdump.conf, check_files_modified will return 1 and is_system_modified will
return 1 immediately. This will cause kdumpctl to skip check_fs/drivers_modified,
kdump.service will rebuild the initrd and start successfully, however, any
errors should prevent kdump.service from starting.
This patch will cause check_*_modifed to continue running until an error occurs
or all execution ends.
Signed-off-by: Lichen Liu <lichliu(a)redhat.com>
---
kdumpctl | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/kdumpctl b/kdumpctl
index 01433e2..3da5fff 100755
--- a/kdumpctl
+++ b/kdumpctl
@@ -605,6 +605,10 @@ check_fs_modified()
is_system_modified()
{
local ret
+ local CONF_ERROR=2
+ local CONF_MODIFY=1
+ local CONF_NO_MODIFY=0
+ local conf_status=$CONF_NO_MODIFY
[[ -f $TARGET_INITRD ]] || return 1
@@ -617,9 +621,15 @@ is_system_modified()
fi
fi
- check_files_modified || return
- check_fs_modified || return
- check_drivers_modified
+ for _func in check_files_modified check_fs_modified check_drivers_modified; do
+ $_func
+ ret=$?
+ # return immediately if an error occurred.
+ [[ $ret -eq "$CONF_ERROR" ]] && return
"$ret"
+ [[ $ret -eq "$CONF_MODIFY" ]] && {
conf_status="$CONF_MODIFY"; }
+ done
+
+ return $conf_status
}
# need_initrd_rebuild - check whether the initrd needs to be rebuild
--
2.41.0