Browse Source

99base/init: only poll cdroms, if the kernel does support autopolling

master
Harald Hoyer 14 years ago
parent
commit
ab55a117e2
  1. 16
      modules.d/99base/init

16
modules.d/99base/init

@ -205,7 +205,8 @@ getarg 'rd.break=pre-trigger' 'rdbreak=pre-trigger' && emergency_shell -n pre-tr
source_hook pre-trigger source_hook pre-trigger


# then the rest # then the rest
udevadm trigger --action=add $udevtriggeropts >/dev/null 2>&1 udevadm trigger --type=subsystems --action=add >/dev/null 2>&1
udevadm trigger --type=devices --action=add >/dev/null 2>&1


getarg 'rd.break=initqueue' 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue" getarg 'rd.break=initqueue' 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue"


@ -246,6 +247,9 @@ while :; do
# no more udev jobs and queues empty. # no more udev jobs and queues empty.
sleep 0.5 sleep 0.5


if [ ! -e /sys/module/block/parameters/uevent ]; then
# if the kernel does not support autopolling
# then we have to do a
# dirty hack for some cdrom drives, # dirty hack for some cdrom drives,
# which report no medium for quiet # which report no medium for quiet
# some time. # some time.
@ -254,17 +258,9 @@ while :; do
# skip, if cdrom medium was already found # skip, if cdrom medium was already found
strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \ strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \
ID_CDROM_MEDIA && continue ID_CDROM_MEDIA && continue

if [ -e "$cdrom"/events_poll_msecs -a ! -e "/tmp/.poll_${cdrom##*/}" ]; then
msecs=$(while read a; do echo $a;done < "$cdrom"/events_poll_msecs)
if [ "$msecs" = "-1" ]; then
echo 250 > "$cdrom"/events_poll_msecs
> "/tmp/.poll_${cdrom##*/}"
fi
else
echo change > "$cdrom/uevent" echo change > "$cdrom/uevent"
fi
done done
fi


if [ $main_loop -gt $(($RDRETRY/2)) ]; then if [ $main_loop -gt $(($RDRETRY/2)) ]; then
for job in $hookdir/initqueue/timeout/*.sh; do for job in $hookdir/initqueue/timeout/*.sh; do

Loading…
Cancel
Save