98pollcdrom: factored out the ugly cdrom polling in the main loop
authorHarald Hoyer <harald@redhat.com>
Fri, 2 Mar 2012 13:53:22 +0000 (14:53 +0100)
committerHarald Hoyer <harald@redhat.com>
Thu, 8 Mar 2012 10:00:29 +0000 (11:00 +0100)
modules.d/98pollcdrom/module-setup.sh [new file with mode: 0755]
modules.d/98pollcdrom/pollcdrom.sh [new file with mode: 0644]
modules.d/99base/init.sh

diff --git a/modules.d/98pollcdrom/module-setup.sh b/modules.d/98pollcdrom/module-setup.sh
new file mode 100755 (executable)
index 0000000..e80ae16
--- /dev/null
@@ -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"
+}
+
diff --git a/modules.d/98pollcdrom/pollcdrom.sh b/modules.d/98pollcdrom/pollcdrom.sh
new file mode 100644 (file)
index 0000000..4abc9d7
--- /dev/null
@@ -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
index 96fd5f2..f6e4027 100755 (executable)
@@ -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