# PROGRAM="fc_transport_lun_scan lun"
#
-[ -z $DEVPATH ] && exit 1
+[ -z "$DEVPATH" ] && exit 1
if [ -n "$1" ]; then
LUN=$1
HOST=${ID%%:*}
CHANNEL=${ID%%-*}
CHANNEL=${CHANNEL#*:}
-if [ -f /sys$DEVPATH/scsi_target_id ]; then
- TARGET=$(cat /sys$DEVPATH/scsi_target_id)
+if [ -f /sys"$DEVPATH"/scsi_target_id ]; then
+ TARGET=$(cat /sys"$DEVPATH"/scsi_target_id)
fi
[ -z "$TARGET" ] && exit 1
-echo $CHANNEL $TARGET $LUN > /sys/class/scsi_host/host$HOST/scan
+echo "$CHANNEL" "$TARGET" $LUN > /sys/class/scsi_host/host"$HOST"/scan
cmdline() {
get_lunmask() {
local _dev=$1
- local _devpath=$(
- cd -P /sys/dev/block/$_dev
- echo $PWD
+ local _devpath _sdev _lun _rport _end_device _classdev _wwpn _sas_address
+ _devpath=$(
+ cd -P /sys/dev/block/"$_dev" || exit
+ echo "$PWD"
)
- local _sdev _lun _rport _end_device _classdev _wwpn _sas_address
[ "${_devpath#*/sd}" == "$_devpath" ] && return 1
_sdev="${_devpath%%/block/*}"
_rport="${_rport%%/*}"
_classdev="/sys/class/fc_remote_ports/rport-${_rport}"
[ -d "$_classdev" ] || return 1
- _wwpn=$(cat ${_classdev}/port_name)
+ _wwpn=$(cat "${_classdev}"/port_name)
echo "rd.lunmask=fc,${_wwpn},${_lun}"
return 0
fi
_end_device="${_end_device%%/*}"
_classdev="/sys/class/sas_device/end_device-${_end_device}"
[ -e "$_classdev" ] || return 1
- _sas_address=$(cat ${_classdev}/sas_address)
+ _sas_address=$(cat "${_classdev}"/sas_address)
echo "rd.lunmask=sas,${_sas_address},${_lun}"
return 0
fi
local tgtid=$2
local lun=$3
local _rule=/etc/udev/rules.d/51-${transport}-lunmask-${tgtid}.rules
- local _cu_type _dev_type
- [ -e ${_rule} ] && return 0
+ [ -e "${_rule}" ] && return 0
if [ ! -f "$_rule" ]; then
if [ "$transport" = "fc" ]; then
- cat > $_rule << EOF
+ cat > "$_rule" << EOF
ACTION=="add", SUBSYSTEM=="fc_remote_ports", ATTR{port_name}=="$tgtid", PROGRAM="fc_transport_scan_lun.sh $lun"
EOF
elif [ "$transport" = "sas" ]; then
- cat > $_rule << EOF
+ cat > "$_rule" << EOF
ACTION=="add", SUBSYSTEM=="sas_device", ATTR{sas_address}=="$tgtid", PROGRAM="sas_transport_scan_lun.sh $lun"
EOF
fi
}
for lunmask_arg in $(getargs rd.lunmask); do
- (
- local OLDIFS="$IFS"
- local IFS=","
- set $lunmask_arg
- IFS="$OLDIFS"
- if [ -d /sys/module/scsi_mod ]; then
- printf "manual" > /sys/module/scsi_mod/parameters/scan
- elif [ ! -f /etc/modprobe.d/95lunmask.conf ]; then
- echo "options scsi_mod scan=manual" > /etc/modprobe.d/95lunmask.conf
- fi
- create_udev_rule $1 $2 $3
- )
+ IFS="," read -r -a _args <<< "$lunmask_arg"
+ if [ -d /sys/module/scsi_mod ]; then
+ printf "manual" > /sys/module/scsi_mod/parameters/scan
+ elif [ ! -f /etc/modprobe.d/95lunmask.conf ]; then
+ echo "options scsi_mod scan=manual" > /etc/modprobe.d/95lunmask.conf
+ fi
+ create_udev_rule "${_args[@]}"
done
# PROGRAM="sas_transport_lun_scan lun"
#
-[ -z $DEVPATH ] && exit 1
+[ -z "$DEVPATH" ] && exit 1
if [ -n "$1" ]; then
LUN=$1
HOST=${ID%%:*}
CHANNEL=${ID%%-*}
CHANNEL=${CHANNEL#*:}
-if [ -f /sys$DEVPATH/scsi_target_id ]; then
- TARGET=$(cat /sys$DEVPATH/scsi_target_id)
+if [ -f /sys"$DEVPATH"/scsi_target_id ]; then
+ TARGET=$(cat /sys"$DEVPATH"/scsi_target_id)
fi
[ -z "$TARGET" ] && exit 1
-echo 0 $TARGET $LUN > /sys/class/scsi_host/host$HOST/scan
+echo 0 "$TARGET" $LUN > /sys/class/scsi_host/host"$HOST"/scan