Blob Blame History Raw
#!/bin/bash

ISCSIADM=/usr/sbin/iscsiadm
start_iscsid=0
start_iscsiuio=0

while read t num p target flash; do
  # strip tag number from portal, keep "ip:port"
  portal=${p%,*}
  transport=${t%:}

  # use session number to find the iface name in use
  num=${num#[}; num=${num%]}
  iface=$(iscsiadm -m session -r $num | grep iface.iscsi_ifacename | cut -d= -f2)

  $ISCSIADM -m node -p $portal -T $target -I $iface -o update -n node.startup -v onboot

  start_iscsid=1

  if [ "$transport" = bnx2i ] || [ "$transport" = qedi ]; then
    start_iscsiuio=1
  fi
done < <( $ISCSIADM -m session )

# force iscsid and iscsiuio to start if needed for
# recovering sessions created in the initrd

if [ "$start_iscsid" -eq 1 ]; then
  systemctl --no-block start iscsid.service
fi
if [ "$start_iscsiuio" -eq 1 ]; then
  systemctl --no-block start iscsiuio.service
fi