On 8/6/19 5:08 PM, Ryan Prichard wrote:
> On Tue, Aug 6, 2019 at 1:56 PM Rob Landley <[email protected]
> <mailto:[email protected]>> wrote:
> 
>     On 8/5/19 7:40 PM, Ryan Prichard via Toybox wrote:
>     > I think this patch fixes a race I noticed, but in practice I was 
> hitting a
>     > different race. After LOOP_CTL_GET_FREE had created a new loop device, 
> losetup
>     > tried to open /dev/block/loopXXX before the device file existed,
> 
>     Why is the ioctl returning before the block device exists?
> 
> 
> I think the /dev/block/loopXXX file is created by a userspace daemon (probably
> ueventd in Android). The ioctl creates the kernel device, then sends an
> asynchronous uevent message to ueventd about the new device. ueventd and 
> losetup
> then race each other to create the file and to open it.

So wait, you're _not_ using devtmpfs?
> Summarizing the util-linux workaround:
>  - Make 16 attempts to open the device file.
>  - If the open fails with EACCES or ENOENT, sleep for 25ms, then try again.

Add a workaround for not using devtmpfs. Right...

Rob
_______________________________________________
Toybox mailing list
[email protected]
http://lists.landley.net/listinfo.cgi/toybox-landley.net

Reply via email to