+
+ local var realdrive drive PARAMS
+ for var in $blockdevs; do
+ realdrive=
+ drive=${var#BLOCKDEV_}
+ if [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
+ realdrive="/dev/${drive}"
+ elif [ -e "/dev/mapper/${drive}" ]; then
+ realdrive="/dev/mapper/${drive}"
+ elif drive=$(echo $drive | tr _ -) && [ -d "/sys/block/${drive}" -a -e "/dev/${drive}" ]; then
+ realdrive="/dev/${drive}"
+ elif [ -e "/dev/mapper/${drive}" ]; then
+ realdrive="/dev/mapper/${drive}"
+ fi
+
+ if [ -n "$realdrive" ]; then
+ eval PARAMS=\$$var
+ if [ -n "${PARAMS}" ]; then
+ show "Setting parameters for block drive %s (%s)" "$drive" "$PARAMS"
+ busy
+ /sbin/blockdev ${PARAMS} $realdrive
+ ok
+ fi
+ fi
+ done
+ # TODO: retval not really handled here
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/blockdev