]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
systemd/dracut-iniqueue - continue waiting if any timeout script makes progress
authorNeilBrown <neilb@suse.de>
Thu, 26 Mar 2015 04:41:47 +0000 (15:41 +1100)
committerHarald Hoyer <harald@redhat.com>
Thu, 26 Mar 2015 15:38:36 +0000 (16:38 +0100)
A number of timeout scripts can be registered.  If any one of them
makes progress - e.g. assembles a degraded md array - then
the main loop should wait a bit longer rather than pressing forward.

This is particularly important is resume-from-hibernate requires a
degraded md array.  Both the script to forcibly assemble the md array
and the script to abort hibernation if the device doesn't appear
are 'timeout' scripts.  There needs to be a reasonable delay between
these running.

So: if any script has indicated that progress was made, break of out
the loop and go back to normal waiting.

Signed-off-by: NeilBrown <neilb@suse.de>
modules.d/98dracut-systemd/dracut-initqueue.sh

index 88cd1e056ed734e04668fdbfa08c98be0f1b248d..af9cec2c5b8c498e9405b2c6224f92751b93c54e 100755 (executable)
@@ -60,6 +60,7 @@ while :; do
             job=$job . $job
             udevadm settle --timeout=0 >/dev/null 2>&1 || main_loop=0
             [ -f $hookdir/initqueue/work ] && main_loop=0
+            [ $main_loop -eq 0 ] && break
         done
     fi