[lvm-devel] udev cookie on DM_DEVICE_RELOAD
Hannes Reinecke
hare at suse.de
Mon Jun 29 14:56:54 UTC 2015
On 06/29/2015 04:49 PM, Peter Rajnoha wrote:
[ .. ]
>
> Actually, we don't check proper combination of dm_task_set_cookie with
> dm task type. So currently, if someone sets cookie on a task that does
> not produce uevents, it can hang if dm_udev_wait is called for such cookie.
>
> I've noticed we have a FIXME in the code for this already, but clearly
> nobody has run into this issue yet. I'll add the check!
>
> As for the DM_DEVICE_RELOAD - yes, it needs DM_DEVICE_RESUME to be called
> right after the reload for the new table to be used (and hence the uevent
> with the cookie generated as well). If you call RELOAD, the inactive
> table is loaded which is then switched to active with the RESUME.
>
> The task that is transparently translated into 3 tasks internally is the
> DM_DEVICE_CREATE (with table) which translates into CREATE + LOAD + RESUME.
>
> Anyway, yes, the check whether cookie is not misused is not there yet, so
> that's why you hit this.
>
So how to circumvent this?
Should I do an explicit
SUSPEND/RELOAD/RESUME call sequence and add a cookie on the final
resume?
Or is it sufficient to call RESUME after RELOAD without suspending
first? Or another magic trick?
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare at suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
More information about the lvm-devel
mailing list