diff options
author | Adrian Drzewiecki <adriand@vmware.com> | 2010-08-17 21:49:02 -0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2010-08-17 21:49:02 -0400 |
commit | e6ffbcb6cd0ac471223df24ae77eb486c1ee68cc (patch) | |
tree | 8739230c95a051c8ab95fdbfd90ec2e6ce0bf3c9 | |
parent | 3a3a5ddb7a0f43c3dd0f98673f3d930a456725f8 (diff) |
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>
-rw-r--r-- | drivers/md/raid1.c | 1 | ||||
-rw-r--r-- | drivers/md/raid10.c | 1 | ||||
-rw-r--r-- | drivers/md/raid5.c | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 73cc74ffc26b..0e1abf1bb38e 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -1135,6 +1135,7 @@ static int raid1_spare_active(mddev_t *mddev) | |||
1135 | spin_lock_irqsave(&conf->device_lock, flags); | 1135 | spin_lock_irqsave(&conf->device_lock, flags); |
1136 | mddev->degraded--; | 1136 | mddev->degraded--; |
1137 | spin_unlock_irqrestore(&conf->device_lock, flags); | 1137 | spin_unlock_irqrestore(&conf->device_lock, flags); |
1138 | sysfs_notify_dirent(rdev->sysfs_state); | ||
1138 | } | 1139 | } |
1139 | } | 1140 | } |
1140 | 1141 | ||
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index a88aeb5198c7..76d1fc9c65ba 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
@@ -1130,6 +1130,7 @@ static int raid10_spare_active(mddev_t *mddev) | |||
1130 | spin_lock_irqsave(&conf->device_lock, flags); | 1130 | spin_lock_irqsave(&conf->device_lock, flags); |
1131 | mddev->degraded--; | 1131 | mddev->degraded--; |
1132 | spin_unlock_irqrestore(&conf->device_lock, flags); | 1132 | spin_unlock_irqrestore(&conf->device_lock, flags); |
1133 | sysfs_notify_dirent(tmp->rdev->sysfs_state); | ||
1133 | } | 1134 | } |
1134 | } | 1135 | } |
1135 | 1136 | ||
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 866d4b5a144c..7865dd090bde 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -5341,6 +5341,7 @@ static int raid5_spare_active(mddev_t *mddev) | |||
5341 | spin_lock_irqsave(&conf->device_lock, flags); | 5341 | spin_lock_irqsave(&conf->device_lock, flags); |
5342 | mddev->degraded--; | 5342 | mddev->degraded--; |
5343 | spin_unlock_irqrestore(&conf->device_lock, flags); | 5343 | spin_unlock_irqrestore(&conf->device_lock, flags); |
5344 | sysfs_notify_dirent(tmp->rdev->sysfs_state); | ||
5344 | } | 5345 | } |
5345 | } | 5346 | } |
5346 | print_raid5_conf(conf); | 5347 | print_raid5_conf(conf); |