coldplug: only start hotplug timer after udevtrigger finished
authorGabor Juhos <juhosg@openwrt.org>
Tue, 10 Sep 2013 14:56:10 +0000 (16:56 +0200)
committerJohn Crispin <blogic@openwrt.org>
Fri, 13 Sep 2013 15:37:26 +0000 (17:37 +0200)
commit66d3d15c27e258fe51ef27267a1ddb004137dd65
treed18801189ed17102ff953549a2ce95783dc3e2b1
parentd4f72a9102c8ce5996f1c340e56d68c07eeda043
coldplug: only start hotplug timer after udevtrigger finished

Currently the last event timer for hotplug is
started after the udevtrigger process is forked.

Starting the timer means that the first hotplug
event must come in before the timer expires.
During this time the kernel must load the binary
of the udevtrigger from the underlying rootfs
which can be time consuming on slow systems.

On such systems, the timer expires before the
first hotplug event happens which results in
broken behaviour. Due to the missing device nodes,
not the ubus nor the procd code works correctly in
that case.

Change the code to only start the hotplug last
event timer after the udevtrigger process finishes.
This ensures that the delay caused by accessing the
underlying filesystem does not affects the desired
behaviour.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
coldplug.c