[systemd-devel] cdrom_id opens device with O_EXCL, why?

David Herrmann dh.herrmann at gmail.com
Thu Sep 18 04:34:48 PDT 2014


Hi

On Thu, Sep 18, 2014 at 1:02 PM, Hoyer, Marko (ADITG/SW2)
<mhoyer at de.adit-jv.com> wrote:
> Thx for the answer.
>
> The automounter is listening to the udev socket so it is actually waiting for the
> event to be processed completely. But unfortunately, it appears that sequences
> of change events might come in a short time frame. So the automounter is trying
> to mount the device triggered by the first one, while udevd is currently processing
> the second one. That's what's happening actually in my case. Besides that the
> issue with cdrom_id not working in case of a lazy unmount (described in my
> second mail) seems to me to be a bit more critical.

The automounter could just ignore the udev event on EBUSY. That is, if
you get EBUSY, bail out (maybe print a debug message) and just do
nothing. If udev was the offending O_EXCL blocker, you can be sure to
get a follow-up event.

Regarding lazy-unmount: That's just ugly. I have no idea how to work
around that, sorry.

I'm putting Harald and Kay on CC, as they added O_EXCL to protect
against parallel burning-sessions. Maybe they can tell you whether
that is still needed today and whether we can drop it.

Thanks
David


More information about the systemd-devel mailing list