dracut/0193-95iscsi-Set-number-of-login-retries.patch

67 lines
2.4 KiB
Diff

From: Thomas Blume <thomas.blume@suse.com>
Date: Mon, 19 Oct 2015 09:39:41 +0200
Subject: Set number of login retries
Allow to set the number of login retries from the kernel commandline.
References: bsc#919179
Signed-off-by: Thomas Blume <thomas.blume@suse.com>
---
modules.d/95iscsi/iscsiroot.sh | 25 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
Index: dracut-044/modules.d/95iscsi/iscsiroot.sh
===================================================================
--- dracut-044.orig/modules.d/95iscsi/iscsiroot.sh 2016-04-14 14:52:44.685325362 +0200
+++ dracut-044/modules.d/95iscsi/iscsiroot.sh 2016-04-14 14:57:07.628188324 +0200
@@ -41,6 +41,14 @@ if [ -z "${DRACUT_SYSTEMD}" ] && [ -e /s
> /tmp/iscsiuio-started
fi
+#set value for initial login retry
+set_login_retries() {
+ local default retries
+ default=2
+ retries=$(getarg rd.iscsilogin.retries)
+ return ${retries:-$default}
+}
+
handle_firmware()
{
if ! iscsiadm -m fw; then
@@ -67,7 +75,7 @@ handle_netroot()
local iscsi_username iscsi_password
local iscsi_in_username iscsi_in_password
local iscsi_iface_name iscsi_netdev_name
- local iscsi_param
+ local iscsi_param param
local p
# override conf settings by command line options
@@ -100,6 +108,15 @@ handle_netroot()
ip route get "$iscsi_target_ip" >/dev/null 2>&1 || return 0
fi
+ #limit iscsistart login retries
+ if [[ ! "$iscsi_param" =~ "node.session.initial_login_retry_max" ]]; then
+ set_login_retries
+ retries=$?
+ if [ $retries -gt 0 ]; then
+ iscsi_param="${iscsi_param% } node.session.initial_login_retry_max=$retries"
+ fi
+ fi
+
# XXX is this needed?
getarg ro && iscsirw=ro
getarg rw && iscsirw=rw
@@ -202,7 +219,7 @@ handle_netroot()
[ -n "$iscsi_password" ] && $($COMMAND --name=node.session.auth.password --value=$iscsi_password)
[ -n "$iscsi_in_username" ] && $($COMMAND --name=node.session.auth.username_in --value=$iscsi_in_username)
[ -n "$iscsi_in_password" ] && $($COMMAND --name=node.session.auth.password_in --value=$iscsi_in_password)
- [ -n "$iscsi_param" ] && $($COMMAND --name=${iscsi_param%=*} --value=${iscsi_param#*=}
+ [ -n "$iscsi_param" ] && for param in $iscsi_param; do $($COMMAND --name=${param%=*} --value=${param#*=}); done
fi
done