On Mon, 10 Jun 2024 11:03:25 -0700 Song Liu <song@xxxxxxxxxx> wrote: > On Wed, May 22, 2024 at 12:32 AM Kinga Stefaniuk > <kinga.stefaniuk@xxxxxxxxx> wrote: > > > [...] > > > --- > > drivers/md/md.c | 47 > > ++++++++++++++++++++++++++++++--------------- drivers/md/md.h | > > 2 +- drivers/md/raid10.c | 2 +- > > drivers/md/raid5.c | 2 +- > > 4 files changed, 35 insertions(+), 18 deletions(-) > > > > diff --git a/drivers/md/md.c b/drivers/md/md.c > > index aff9118ff697..2ec696e17f3d 100644 > > --- a/drivers/md/md.c > > +++ b/drivers/md/md.c > > @@ -313,6 +313,16 @@ static int start_readonly; > > */ > > static bool create_on_open = true; > > > > +/* > > + * Send every new event to the userspace. > > + */ > > +static void trigger_kobject_uevent(struct work_struct *work) > > +{ > > + struct mddev *mddev = container_of(work, struct mddev, > > event_work); + > > + kobject_uevent(&disk_to_dev(mddev->gendisk)->kobj, > > KOBJ_CHANGE); +} > > + > > /* > > * We have a system wide 'event count' that is incremented > > * on any 'interesting' event, and readers of /proc/mdstat > > @@ -325,10 +335,15 @@ static bool create_on_open = true; > > */ > > static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters); > > static atomic_t md_event_count; > > -void md_new_event(void) > > +void md_new_event(struct mddev *mddev, bool trigger_event) > > { > > atomic_inc(&md_event_count); > > wake_up(&md_event_waiters); > > + > > + if (trigger_event) > > + kobject_uevent(&disk_to_dev(mddev->gendisk)->kobj, > > KOBJ_CHANGE); > > + else > > + schedule_work(&mddev->event_work); > > event_work is also used by dmraid. Will this cause an issue with > dmraid? > > Thanks, > Song > Hi Song, yes, you're right. It is fixed in next patchset - new work_struct uevent_work was added. Regards, Kinga