From ae65c7cc9577747104d2e7e9563a49f9f850eef9 Mon Sep 17 00:00:00 2001 From: Thomas Bächler Date: Sun, 21 Feb 2010 02:01:57 +0100 Subject: poll_device: do not wait for a device to appear if udevd is not running Devices will never "magically" appear when udevd is not running. Thus, poll_device now exits instantly when a device when udevd is not running. The return value is unchanged, just the delay is removed. Assuming that the drive is available just after loading the module is unsafe. However, "fast" devices like most (all?) pata/sata seem to work this way for many people. On "slow" devices like USB, we still have to wait - those will not work without udev. --- init | 3 +++ init_functions | 12 +++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/init b/init index 19722e4..3a34a45 100644 --- a/init +++ b/init @@ -23,7 +23,10 @@ if [ -x /sbin/udevd ]; then msg ":: Starting udevd..." echo > /proc/sys/kernel/hotplug /sbin/udevd --daemon --resolve-names=never + export udevd_running=1 msg "done." +else + export udevd_running=0 fi for cmd in ${CMDLINE}; do diff --git a/init_functions b/init_functions index aad406d..c165ff0 100644 --- a/init_functions +++ b/init_functions @@ -14,11 +14,13 @@ poll_device() { else seconds=5 fi - echo "Waiting ${seconds} seconds for device ${device} ..." - while [ ! -b "${device}" -a ! -h "${device}" -a ${seconds} -gt 0 ]; do - sleep 1 - seconds=$((${seconds}-1)) - done + if [ "${udevd_running}" -eq 1 ]; then + echo "Waiting ${seconds} seconds for device ${device} ..." + while [ ! -b "${device}" -a ! -h "${device}" -a ${seconds} -gt 0 ]; do + sleep 1 + seconds=$((${seconds}-1)) + done + fi [ -b "${device}" -o -h "${device}" ] } -- cgit v1.2.3-24-g4f1b