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(-) Index: dracut-042/modules.d/95dasd_rules/parse-dasd.sh =================================================================== --- dracut-042.orig/modules.d/95dasd_rules/parse-dasd.sh 2015-06-24 18:02:10.257423027 +0200 +++ dracut-042/modules.d/95dasd_rules/parse-dasd.sh 2015-06-24 18:02:10.589441929 +0200 @@ -29,6 +29,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 @@ -46,7 +47,7 @@ for dasd_arg in $(getargs root=) $(getar case $dasd_arg in /dev/disk/by-path/ccw-*) ccw_arg=${dasd_arg##*/} - break; + ;; esac if [ -n "$ccw_arg" ] ; then IFS="-" @@ -75,8 +76,8 @@ for dasd_arg in $(getargs rd.dasd=); do end=${1#0.0.} shift unset IFS - 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 ;; *) @@ -85,7 +86,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