1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-28 20:25:38 +03:00

path_id: handle fiber channel

Patch from: Hannes Reinecke <hare@suse.de>

Signed-off-by: Kay Sievers <kay.sievers@suse.de>
This commit is contained in:
Kay Sievers 2006-01-23 19:08:06 +01:00
parent d8a57e7c26
commit aabc6a7294

View File

@ -248,6 +248,46 @@ handle_block_scsi () {
RESULT=0
}
handle_block_fc () {
: handle_block_fc $*
local DEV=$1
local cil controller_port controller_dev
# SCSI-FC device
fc_tgt_hcil="${DEV##*/}"
fc_tgt_lun="${fc_tgt_hcil##*:}"
fc_tgt_path="${DEV%/*}"
fc_tgt_num="${fc_tgt_path##*/}"
fc_tgt_dev="${fc_tgt_path}/fc_transport:${fc_tgt_num}"
if [ -e "$fc_tgt_dev/port_name" ]; then
read wwpn < $fc_tgt_dev/port_name
fi
if [ -z "$wwpn" ] ; then
: no WWPN
RESULT=1
return
fi
# Linux currently knows about 32bit luns
tmp_lun3=$(printf "%04x" $(($fc_tgt_lun & 0xFFFF)))
tmp_lun2=$(printf "%04x" $(( ($fc_tgt_lun >> 16) & 0xFFFF)))
tmp_lun1="0000"
tmp_lun0="0000"
if (($fc_tgt_lun == 0)) ; then
lun="0x0000000000000000"
else
lun="0x${tmp_lun3}${tmp_lun2}${tmp_lun1}${tmp_lun0}"
fi
controller_dev="${fc_tgt_path%/host[0-9]*}"
adapter="${controller_dev##*/}"
bus="pci"
d="$bus-$adapter"
if [ -z "$controller_port" ] ; then
controller_port=0
fi
d="${d}-fc-${wwpn}:${lun}"
RESULT=0
}
handle_block_usb_storage () {
: handle_block_usb_storage $*
local DEV=$1
@ -353,6 +393,9 @@ handle_block () {
RESULT=0
fi
;;
*/rport-[0-9]*:[0-9]*-[0-9]*/*)
handle_block_fc "$D"
;;
*/host[0-9]*/[0-9]*:[0-9]*:[0-9]*:[0-9]*)
# check for ieee1394 sbp2
if test -f $D/ieee1394_id ; then