44 lines
1.4 KiB
Diff
44 lines
1.4 KiB
Diff
|
From a277a5fc7acc0a9e8d853f09671495f9d27645c1 Mon Sep 17 00:00:00 2001
|
||
|
From: Harald Hoyer <harald@redhat.com>
|
||
|
Date: Fri, 21 May 2021 12:19:32 +0200
|
||
|
Subject: [PATCH] fix(dracut-functions): get_maj_min without
|
||
|
get_maj_min_cache_file set
|
||
|
|
||
|
If `get_maj_min_cache_file` is unset `get_maj_min()` would error out.
|
||
|
|
||
|
Fix it to work without a cache file set.
|
||
|
---
|
||
|
dracut-functions.sh | 17 ++++++++++++-----
|
||
|
1 file changed, 12 insertions(+), 5 deletions(-)
|
||
|
|
||
|
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
||
|
index 1991c62e..5206bd21 100755
|
||
|
--- a/dracut-functions.sh
|
||
|
+++ b/dracut-functions.sh
|
||
|
@@ -234,13 +234,20 @@ get_fs_env() {
|
||
|
# 8:2
|
||
|
get_maj_min() {
|
||
|
local _majmin
|
||
|
- out="$(grep -m1 -oP "^$1 \K\S+$" "${get_maj_min_cache_file:?}")"
|
||
|
- if [ -z "$out" ]; then
|
||
|
+ local _out
|
||
|
+
|
||
|
+ if [[ $get_maj_min_cache_file ]]; then
|
||
|
+ _out="$(grep -m1 -oP "^$1 \K\S+$" "$get_maj_min_cache_file")"
|
||
|
+ fi
|
||
|
+
|
||
|
+ if ! [[ "$_out" ]]; then
|
||
|
_majmin="$(stat -L -c '%t:%T' "$1" 2> /dev/null)"
|
||
|
- out="$(printf "%s" "$((0x${_majmin%:*})):$((0x${_majmin#*:}))")"
|
||
|
- echo "$1 $out" >> "${get_maj_min_cache_file:?}"
|
||
|
+ _out="$(printf "%s" "$((0x${_majmin%:*})):$((0x${_majmin#*:}))")"
|
||
|
+ if [[ $get_maj_min_cache_file ]]; then
|
||
|
+ echo "$1 $_out" >> "$get_maj_min_cache_file"
|
||
|
+ fi
|
||
|
fi
|
||
|
- echo -n "$out"
|
||
|
+ echo -n "$_out"
|
||
|
}
|
||
|
|
||
|
# get_devpath_block <device>
|