You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.5 KiB

From fd3eddf06990a617a2f90b0a699947ab3faf2cc2 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 10 Sep 2015 13:25:13 +0200
Subject: [PATCH] iscsi/iscsiroot.sh: handle iscsi_firmware in online and
timeout queue
The return code of iscsi_firmware is broken, so set the marker
unconditionally.
---
modules.d/95iscsi/iscsiroot.sh | 43 +++++++++++++++++++-----------------------
1 file changed, 19 insertions(+), 24 deletions(-)
diff --git a/modules.d/95iscsi/iscsiroot.sh b/modules.d/95iscsi/iscsiroot.sh
index 424d2166..ea1bead7 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -45,29 +45,23 @@ fi
handle_firmware()
{
- if ! [ -e /tmp/iscsistarted-firmware ]; then
- if ! iscsistart -f; then
- warn "iscistart: Could not get list of targets from firmware."
- return 1
- fi
+ if ! iscsistart -f; then
+ warn "iscistart: Could not get list of targets from firmware."
+ return 1
+ fi
- for p in $(getargs rd.iscsi.param -d iscsi_param); do
- iscsi_param="$iscsi_param --param $p"
- done
+ for p in $(getargs rd.iscsi.param -d iscsi_param); do
+ iscsi_param="$iscsi_param --param $p"
+ done
- if ! iscsistart -b $iscsi_param; then
- warn "'iscsistart -b $iscsi_param' failed"
- fi
+ if ! iscsistart -b $iscsi_param; then
+ warn "'iscsistart -b $iscsi_param' failed with return code $?"
+ fi
- if [ -d /sys/class/iscsi_session ]; then
- echo 'started' > "/tmp/iscsistarted-iscsi:"
- echo 'started' > "/tmp/iscsistarted-firmware"
- else
- return 1
- fi
+ echo 'started' > "/tmp/iscsistarted-iscsi:"
+ echo 'started' > "/tmp/iscsistarted-firmware"
- need_shutdown
- fi
+ need_shutdown
return 0
}
@@ -238,15 +232,16 @@ if [ "$netif" = "timeout" ] && all_ifaces_setup; then
sleep 2
fi
-if [ "$netif" = "online" ]; then
- if getargbool 0 rd.iscsi.firmware -d -y iscsi_firmware ; then
+if getargbool 0 rd.iscsi.firmware -d -y iscsi_firmware ; then
+ if [ "$netif" = "timeout" ] || [ "$netif" = "online" ]; then
handle_firmware
ret=$?
fi
-else
+fi
+
+if ! [ "$netif" = "online" ]; then
# loop over all netroot parameter
- nroot=$(getarg netroot)
- if [ $? -eq 0 ] && [ "$nroot" != "dhcp" ]; then
+ if nroot=$(getarg netroot) && [ "$nroot" != "dhcp" ]; then
for nroot in $(getargs netroot); do
[ "${nroot%%:*}" = "iscsi" ] || continue
nroot="${nroot##iscsi:}"