From: Hannes Reinecke Date: Thu, 25 Feb 2016 12:58:13 +0000 (+0800) Subject: 95iscsi: parse output from iscsiadm correctly X-Git-Tag: 033-502~110 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=68021e85c982e62dd4082accf024b84da040f450;p=thirdparty%2Fdracut.git 95iscsi: parse output from iscsiadm correctly Due to some obsure reason the IFS parameter is not set correctly when evaluating get_ibft_mod(). So change the parsing to not rely on IFS altogether. References: bnc#886199 Signed-off-by: Hannes Reinecke Signed-off-by: Thomas Renninger --- diff --git a/modules.d/95iscsi/module-setup.sh b/modules.d/95iscsi/module-setup.sh index 64c9c1d16..b1f5c6cb0 100755 --- a/modules.d/95iscsi/module-setup.sh +++ b/modules.d/95iscsi/module-setup.sh @@ -31,15 +31,16 @@ check() { get_ibft_mod() { local ibft_mac=$1 + local iface_mac iface_mod # Return the iSCSI offload module for a given MAC address - iscsiadm -m iface | while read iface_name iface_desc ; do - IFS=$',' - set -- $iface_desc - if [ "$ibft_mac" = "$2" ] ; then - echo $1 + for iface_desc in $(iscsiadm -m iface | cut -f 2 -d ' '); do + iface_mod=${iface_desc%%,*} + iface_mac=${iface_desc#*,} + iface_mac=${iface_mac%%,*} + if [ "$ibft_mac" = "$iface_mac" ] ; then + echo $iface_mod return 0 fi - unset IFS done }