Browse Source

98pollcdrom: factored out the ugly cdrom polling in the main loop

master
Harald Hoyer 13 years ago
parent
commit
74db72dd0b
  1. 16
      modules.d/98pollcdrom/module-setup.sh
  2. 23
      modules.d/98pollcdrom/pollcdrom.sh
  3. 14
      modules.d/99base/init.sh

16
modules.d/98pollcdrom/module-setup.sh

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh

check() {
return 255
}

depends() {
return 0
}

install() {
inst_hook initqueue/settled 99 "$moddir/pollcdrom.sh"
}

23
modules.d/98pollcdrom/pollcdrom.sh

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
#!/bin/sh
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
#
# Licensed under the GPLv2
#
# Copyright 2008-2012, Red Hat, Inc.
# Harald Hoyer <harald@redhat.com>

if [ ! -e /sys/module/block/parameters/events_dfl_poll_msecs ]; then
# if the kernel does not support autopolling
# then we have to do a
# dirty hack for some cdrom drives,
# which report no medium for quiet
# some time.
for cdrom in /sys/block/sr*; do
[ -e "$cdrom" ] || continue
# skip, if cdrom medium was already found
strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \
ID_CDROM_MEDIA && continue
echo change > "$cdrom/uevent"
done
fi

14
modules.d/99base/init.sh

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

if [ ! -e /sys/module/block/parameters/events_dfl_poll_msecs ]; then
# if the kernel does not support autopolling
# then we have to do a
# dirty hack for some cdrom drives,
# which report no medium for quiet
# some time.
for cdrom in /sys/block/sr*; do
[ -e "$cdrom" ] || continue
# skip, if cdrom medium was already found
strstr "$(udevadm info --query=env --path=${cdrom##/sys})" \
ID_CDROM_MEDIA && continue
echo change > "$cdrom/uevent"
done
fi

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

Loading…
Cancel
Save