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>
This commit is contained in:
parent
cb761c7224
commit
741861164e
16
kdumpctl
16
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
|
||||
|
Loading…
Reference in New Issue
Block a user