kdumpctl: Only returns immediately after an error occurs in check_*_modified
Resolves: https://issues.redhat.com/browse/RHEL-10485
Upstream: Fedora
Conflict: Missing upstream patch d4e8772("kdumpctl: make do_estimate more
robust")
commit 741861164e
Author: Lichen Liu <lichliu@redhat.com>
Date: Mon Oct 30 14:51:59 2023 +0800
kdumpctl: Only returns immediately after an error occurs in check_*_modified
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@redhat.com>
Acked-by: Tao Liu <ltao@redhat.com>
Signed-off-by: Lichen Liu <lichliu@redhat.com>
This commit is contained in:
parent
160325ed6d
commit
32395bad00
30
kdumpctl
30
kdumpctl
@ -538,28 +538,22 @@ check_fs_modified()
|
|||||||
check_system_modified()
|
check_system_modified()
|
||||||
{
|
{
|
||||||
local ret
|
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
|
[[ -f $TARGET_INITRD ]] || return 1
|
||||||
|
|
||||||
check_files_modified
|
for _func in check_files_modified check_fs_modified check_drivers_modified; do
|
||||||
ret=$?
|
$_func
|
||||||
if [ $ret -ne 0 ]; then
|
ret=$?
|
||||||
return $ret
|
# return immediately if an error occurred.
|
||||||
fi
|
[[ $ret -eq "$CONF_ERROR" ]] && return "$ret"
|
||||||
|
[[ $ret -eq "$CONF_MODIFY" ]] && { conf_status="$CONF_MODIFY"; }
|
||||||
|
done
|
||||||
|
|
||||||
check_fs_modified
|
return $conf_status
|
||||||
ret=$?
|
|
||||||
if [ $ret -ne 0 ]; then
|
|
||||||
return $ret
|
|
||||||
fi
|
|
||||||
|
|
||||||
check_drivers_modified
|
|
||||||
ret=$?
|
|
||||||
if [ $ret -ne 0 ]; then
|
|
||||||
return $ret
|
|
||||||
fi
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
check_rebuild()
|
check_rebuild()
|
||||||
|
Loading…
Reference in New Issue
Block a user