Răsfoiți Sursa

md: Notify sysfs when RAID1/5/10 disk is In_sync.

When RAID1 is done syncing disks, it'll update the state
of synced rdevs to In_sync. But it neglected to notify
sysfs that the attribute changed. So any programs that
are waiting for an rdev's state to change will not be
woken.

(raid5/raid10 added by neilb)

Signed-off-by: Adrian Drzewiecki <adriand@vmware.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Adrian Drzewiecki 15 ani în urmă
părinte
comite
e6ffbcb6cd
3 a modificat fișierele cu 3 adăugiri și 0 ștergeri
  1. 1 0
      drivers/md/raid1.c
  2. 1 0
      drivers/md/raid10.c
  3. 1 0
      drivers/md/raid5.c

+ 1 - 0
drivers/md/raid1.c

@@ -1135,6 +1135,7 @@ static int raid1_spare_active(mddev_t *mddev)
 			spin_lock_irqsave(&conf->device_lock, flags);
 			mddev->degraded--;
 			spin_unlock_irqrestore(&conf->device_lock, flags);
+			sysfs_notify_dirent(rdev->sysfs_state);
 		}
 	}
 

+ 1 - 0
drivers/md/raid10.c

@@ -1130,6 +1130,7 @@ static int raid10_spare_active(mddev_t *mddev)
 			spin_lock_irqsave(&conf->device_lock, flags);
 			mddev->degraded--;
 			spin_unlock_irqrestore(&conf->device_lock, flags);
+			sysfs_notify_dirent(tmp->rdev->sysfs_state);
 		}
 	}
 

+ 1 - 0
drivers/md/raid5.c

@@ -5341,6 +5341,7 @@ static int raid5_spare_active(mddev_t *mddev)
 			spin_lock_irqsave(&conf->device_lock, flags);
 			mddev->degraded--;
 			spin_unlock_irqrestore(&conf->device_lock, flags);
+			sysfs_notify_dirent(tmp->rdev->sysfs_state);
 		}
 	}
 	print_raid5_conf(conf);