Blob Blame History Raw
From b5363e834a5fe49d5651c12e70f664b96c841cae 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.

(cherry picked from commit fd3eddf06990a617a2f90b0a699947ab3faf2cc2)
---
 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 b14a71b..5752cce 100755
--- a/modules.d/95iscsi/iscsiroot.sh
+++ b/modules.d/95iscsi/iscsiroot.sh
@@ -43,29 +43,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
 }
 
@@ -236,15 +230,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:}"