Re: check_finished() syntax weirdness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 13.05.2014 11:44, Hannes Reinecke wrote:
> Hi all,
> 
> I'm trying to figure out why my initqueue scripts are never called.
> Eg 95fcoe is just installing an initqueue job, which should call
> 'fcoe-up' on the interface.
> However, this script is never called, irrespective of any 'fcoe=' parameters.
> 
> Looking a dracut-initqueue.sh, we have this:
> 
> while :; do
> 
>     check_finished && break
> 
>     udevadm settle --exit-if-exists=$hookdir/initqueue/work
> 
>     check_finished && break
> 
>     if [ -f $hookdir/initqueue/work ]; then
>         rm -f -- "$hookdir/initqueue/work"
>     fi
> 
>     for job in $hookdir/initqueue/*.sh; do
>         [ -e "$job" ] || break
>         job=$job . $job
>         check_finished && break 2
>     done
> 
>     udevadm settle --timeout=0 >/dev/null 2>&1 || continue
> ...
> 
> and check_finished is:
> 
> check_finished() {
>     local f
>     for f in $hookdir/initqueue/finished/*.sh; do
>         [ "$f" = "$hookdir/initqueue/finished/*.sh" ] && return 0
>         { [ -e "$f" ] && ( . "$f" ) ; } || return 1
>     done
>     return 0
> }
> 
> IE if no scripts are present in the 'finished' queue, 'check_finished' will
> return '0', causing the main initqueue to short-circuit and the actual
> initqueue jobs will never be executed.
> 
> Is this the intended outcome?
> IE are all jobs for the initqueue are _required_ to supply a 'finished' job?
> 
> I would have thought it to be a bit more permissive, ie do a
> 'return 1' if no finish j0bs have been found ...
> 
> Cheers,
> 
> Hannes

Yes, the finished queue defines when to end the main loop. If you want to hang
around in the main loop, you have to define the "break" condition, or in this
case the negative-continue condition.
--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux