Re: asynchronous calls an the lack of --wait-for-completion options (e.g. modprobe, losetup, cryptsetup)

From: Kay Sievers
Date: Sat Jun 20 2009 - 15:20:44 EST


On Fri, Jun 19, 2009 at 02:52, Robert Hancock<hancockrwd@xxxxxxxxx> wrote:
> On 06/17/2009 07:39 AM, Alexander Holler wrote:

>> The problem is that when I'm e.g. calling modprobe loop, loop might not
>> has finished it's initialization, when modprobe returns.
>
> It will have. Just that udev won't have received the events and created the
> device node yet. So the solution would likely be on the udev side..

The brutal method to do this is to call:
udevadm settle
after loading the module. It will block until all currently pending
events for udev are fully handled.

Recent udevadm versions also have a:
--exit-if-exists=<filename>
option, which will make "settle" stop waiting if a given file exists.

Kay
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/