1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-10-31 07:51:08 +03:00

path_id: add support for iSCSI devices

This commit is contained in:
Hannes Reinecke 2006-05-23 13:26:41 +02:00 committed by Kay Sievers
parent 6deef78755
commit 321f7bbb0a

View File

@ -312,6 +312,61 @@ handle_sas () {
RESULT=0
}
handle_iscsi() {
local DEV=$1
local iscsi_session_dir
local iscsi_session iscsi_session_path
local iscsi_connection iscsi_connection_path
# iSCSI device
iscsi_session_dir="${DEV%%/target*}"
iscsi_session="${iscsi_session_dir##*/}"
iscsi_session_path=/sys/class/iscsi_session/${iscsi_session}
if [ ! -d "$iscsi_session_path" ] ; then
: no iSCSI session path
RESULT=1
return
fi
# Currently we're not doing MC/S
for conn in ${iscsi_session_dir}/connection* ; do
iscsi_conn_num=${conn##*:}
if [ "$iscsi_conn_num" = '0' ] ; then
iscsi_connection=$(basename $conn)
fi
done
if [ -z "$iscsi_connection" ] ; then
: no iSCSI connection found
RESULT=1
return
fi
iscsi_connection_path=/sys/class/iscsi_connection/${iscsi_connection}
if [ ! -d "$iscsi_connection_path" ] ; then
: no iSCSI connection path
RESULT=1
return
fi
if [ -e "${iscsi_session_path}/targetname" ]; then
read iscsi_tgtname < ${iscsi_session_path}/targetname
fi
if [ -z "$iscsi_tgtname" ] ; then
: No iSCSI Targetname
RESULT=1
return
fi
if [ -e "${iscsi_connection_path}/persistent_address" ] ; then
read iscsi_address < ${iscsi_connection_path}/persistent_address
fi
if [ -z "$iscsi_address" ] ; then
: No iSCSI Target address
RESULT=1
return
fi
if [ -e "${iscsi_connection_path}/persistent_port" ] ; then
read iscsi_port < ${iscsi_connection_path}/persistent_port
fi
d="ip-${iscsi_address}:${iscsi_port}-iscsi-${iscsi_tgtname}"
RESULT=0
}
handle_usb () {
: handle_usb $*
local DEV=$1
@ -413,6 +468,10 @@ handle_device () {
*/fw-host[0-9]*/*)
handle_firewire "$D"
;;
*/session[0-9]*/*)
handle_iscsi "$D"
D=
;;
*/host[0-9]*/[0-9]*:[0-9]*:[0-9]*:[0-9]*)
handle_scsi "$D"
;;