Comment # 38 on bug 1060551 from
Comment 36: Here we have a big problem.

The race appears in the time of devices enumeration.

libblkid can be called even before the RAID is enumerated, i. e. in time when
no other device than the one member of RAID exists.

I am not sure, whether udev itself has something like "transactions", i. e. set
of device actions that are logically grouped, but libblkid definitely does not
have such concept.

libblkid does exactly what the name indicates: identifies contents of the block
devices. If a RAID signature is present on the disk, then it is reported as
USAGE=raid.

Current kernel+udev implementation continues in the enumeration of partitions,
even if disk usage==raid. It causes the reported race.

If we change this behavior, then disks taken from a RAID 1 array and connected
separately may not boot automatically, and partitions will not be mounted
automatically.

I can also imagine a half-way implementation:

Currently, USAGE tag supports following values: filesystem, raid, crypto,
other. If we introduce a new value, it will break existing software. But I can
imagine, that a RAID member partition will still return USAGE=filesystem, but
additionaly it will return HINT=raid. Upper level sofware would need to process
the hint and change its behavior.

For example: udev can ignore USAGE=filesystem with HINT=raid, but if no boot
device is found, try again ignoring HINT=raid.


You are receiving this mail because: