Re: [PATCH v6 1/1] md: generate CHANGE uevents for md device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux