Simplfy the code and also improve the performance. udevadm call is
heavy.
Signed-off-by: Kairui Song <kasong(a)redhat.com>
---
mkdumprd | 32 ++++++--------------------------
1 file changed, 6 insertions(+), 26 deletions(-)
diff --git a/mkdumprd b/mkdumprd
index 50ebdc8..b518078 100644
--- a/mkdumprd
+++ b/mkdumprd
@@ -325,7 +325,6 @@ get_override_resettable()
fi
}
-
# $1: function name
for_each_block_target()
{
@@ -340,8 +339,6 @@ for_each_block_target()
return 0
}
-
-
#judge if a specific device with $1 is unresettable
#return false if unresettable.
is_unresettable()
@@ -378,32 +375,15 @@ check_resettable()
return 1
}
-# $1: maj:min
-is_crypt()
-{
- local majmin=$1 dev line ID_FS_TYPE=""
-
- line=$(udevadm info --query=property --path=/sys/dev/block/$majmin \
- | grep "^ID_FS_TYPE")
- eval "$line"
- [[ "$ID_FS_TYPE" = "crypto_LUKS" ]] && {
- dev=$(udevadm info --query=all --path=/sys/dev/block/$majmin | awk -F=
'/DEVNAME/{print $2}')
- derror "Device $dev is encrypted."
- return 0
- }
- return 1
-}
-
check_crypt()
{
- local _ret _target
-
- for_each_block_target is_crypt
- _ret=$?
-
- [ $_ret -eq 0 ] && return
+ local _dev
- return 1
+ for _dev in $(get_kdump_targets); do
+ if [[ -n $(get_luks_crypt_dev "$(get_maj_min "$_dev")") ]];
then
+ derror "Device $_dev is encrypted." && return 1
+ fi
+ done
}
if ! check_resettable; then
--
2.31.1