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

From: Fam Zheng
Date: Sat Sep 03 2016 - 03:16:01 EST


On Sat, 09/03 01:56, Michael S. Tsirkin wrote:
> On Wed, Jun 29, 2016 at 09:24:15AM +0800, Fam Zheng wrote:
> > On Tue, 06/28 04:45, Christoph Hellwig wrote:
> > > 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.
> >
> > OK, I'll take a look today!
> >
> > Fam
>
> Was this fixed in the generic code?

A proposed fix is:

https://lkml.org/lkml/2016/8/17/81

Fam