File 0305-95iscsi-Do-not-require-network-for-qla4xxx-flash-ses.patch of Package dracut.6322

@@ -, +, @@ 
---
--- dracut-037/modules.d/95iscsi/module-setup.sh	
+++ dracut-037/modules.d/95iscsi/module-setup.sh	
@@ -45,8 +45,8 @@ install_ibft() {
 
 install_iscsiroot() {
     local devpath=$1
-    local scsi_path iscsi_lun session c d conn
-    local iscsi_session iscsi_address iscsi_port iscsi_targetname iscsi_tpgt
+    local scsi_path iscsi_lun session c d conn host flash
+    local iscsi_session iscsi_address iscsi_port iscsi_targetname iscsi_tpgt iscsi_host
 
     scsi_path=${devpath%%/block*}
     [ "$scsi_path" = "$devpath" ] && return 1
@@ -56,6 +56,19 @@ install_iscsiroot() {
     [ "$session" = "$devpath" ] && return 1
     iscsi_session=${session##*/}
     [ "$iscsi_session" = "$session" ] && return 1
+    host=${session%%/session*}
+    [ "$host" = "$session" ] && return 1
+    iscsi_host=${host##*/}
+
+    for flash in ${host}/flashnode_sess-* ; do
+        is_boot=$(cat $flash/is_boot_target)
+        if [ $is_boot -eq 1 ] ; then
+            # qla4xxx flashnode session; skip iBFT discovery
+            iscsi_initiator=$(cat /sys/class/iscsi_host/${iscsi_host}/initiatorname)
+            echo "rd.iscsi.initiator=${iscsi_initiator}"
+            return;
+        fi
+    done
 
     for d in ${session}/* ; do
         case $d in
@@ -110,6 +123,7 @@ install_iscsiroot() {
         # can sort out rd.iscsi.initiator= duplicates
         echo "rd.iscsi.initiator=${iscsi_initiator}"
         echo "netroot=iscsi:${iscsi_address}::${iscsi_port}:${iscsi_lun}:${iscsi_targetname}"
+        echo "rd.neednet=1"
     fi
     return 0
 }
openSUSE Build Service is sponsored by