Re: [PATCH] virtio-blk: Generate uevent after attribute available

From: Christoph Hellwig
Date: Tue Jun 28 2016 - 08:36:18 EST


On Tue, Jun 28, 2016 at 10:39:15AM +0800, Fam Zheng wrote:
> Userspace listens to the KOBJ_ADD uevent generated in add_disk. At that
> point we haven't created the serial attribute file, therefore depending
> on how fast udev reacts, the /dev/disk/by-id/ entry doesn't always get
> created.
>
> This race condition can be easily reproduced by hot plugging a number of
> virtio-blk disks.
>
> Also in systemd, there used to be a related workaround in udev rules
> called 'WAIT_FOR="serial"', but it is removed in later versions.
>
> Now let's generate a KOBJ_CHANGE event after the attributes are ready.

The same race is present in other drivers as well, e.g. nvme. Please
find a way to make this work properly without needing to hack every
driver to send events manually.