From: Hannes Reinecke Date: Thu, 11 Dec 2014 14:46:19 +0000 (+0100) Subject: 95iscsi: parse output from iscsiadm correctly X-Git-Tag: 041~44 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cd72830807e231f8a88bd81c8f2df951c5a6d33e;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 9975e5918..f13119f92 100755 --- a/modules.d/95iscsi/module-setup.sh +++ b/modules.d/95iscsi/module-setup.sh @@ -30,15 +30,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 }