From b302dd2a53864bdd4ff271275fa244f654cb92ca Mon Sep 17 00:00:00 2001 From: Hannes Reinecke Date: Thu, 26 Jun 2014 10:49:03 +0200 Subject: 95dasd_rules: fixup rd.dasd parsing There were some errors when rd.dasd parsing, resulting in the device never to be activated. And we should check for cio_ignore even if a udev rules has been found. Signed-off-by: Hannes Reinecke --- modules.d/95dasd_rules/parse-dasd.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/modules.d/95dasd_rules/parse-dasd.sh b/modules.d/95dasd_rules/parse-dasd.sh index 02b4aea..43ca87a 100755 --- a/modules.d/95dasd_rules/parse-dasd.sh +++ b/modules.d/95dasd_rules/parse-dasd.sh @@ -31,6 +31,10 @@ create_udev_rule() { esac [ -z "${_drv}" ] && return 0 + if [ -x /sbin/cio_ignore ] && cio_ignore -i $ccw > /dev/null ; then + cio_ignore -r $ccw + fi + [ -e ${_rule} ] && return 0 cat > $_rule < /dev/null ; then - cio_ignore -r $ccw - fi } for dasd_arg in $(getargs root=) $(getargs resume=); do @@ -48,7 +49,7 @@ for dasd_arg in $(getargs root=) $(getargs resume=); do case $dasd_arg in /dev/disk/by-path/ccw-*) ccw_arg=${dasd_arg##*/} - break; + ;; esac if [ -n "$ccw_arg" ] ; then OLDIFS="$IFS" @@ -79,8 +80,8 @@ for dasd_arg in $(getargs rd.dasd=); do end=${1#0.0.} shift IFS="$OLDIFS" - for dev in $(seq $(( 10#$start )) $(( 10#$end )) ) ; do - create_udev_rule $(printf "0.0.%04d" "$dev") + for dev in $(seq $(( 16#$start )) $(( 16#$end )) ) ; do + create_udev_rule $(printf "0.0.%04x" "$dev") done ;; *) @@ -89,7 +90,7 @@ for dasd_arg in $(getargs rd.dasd=); do ro=1 fi dev=${dev#0.0.} - create_udev_rule $(printf "0.0.%04d" $(( 10#$dev )) ) + create_udev_rule $(printf "0.0.%04x" $(( 16#$dev )) ) shift ;; esac -- 1.8.4.5