diff options
Diffstat (limited to 'drivers/md/md.c')
| -rw-r--r-- | drivers/md/md.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index ec802913f977..f19b874753a9 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
| @@ -167,6 +167,15 @@ void md_new_event(mddev_t *mddev) | |||
| 167 | } | 167 | } |
| 168 | EXPORT_SYMBOL_GPL(md_new_event); | 168 | EXPORT_SYMBOL_GPL(md_new_event); |
| 169 | 169 | ||
| 170 | /* Alternate version that can be called from interrupts | ||
| 171 | * when calling sysfs_notify isn't needed. | ||
| 172 | */ | ||
| 173 | void md_new_event_inintr(mddev_t *mddev) | ||
| 174 | { | ||
| 175 | atomic_inc(&md_event_count); | ||
| 176 | wake_up(&md_event_waiters); | ||
| 177 | } | ||
| 178 | |||
| 170 | /* | 179 | /* |
| 171 | * Enables to iterate over all existing md arrays | 180 | * Enables to iterate over all existing md arrays |
| 172 | * all_mddevs_lock protects this list. | 181 | * all_mddevs_lock protects this list. |
| @@ -4149,7 +4158,7 @@ void md_error(mddev_t *mddev, mdk_rdev_t *rdev) | |||
| 4149 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); | 4158 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); |
| 4150 | set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); | 4159 | set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); |
| 4151 | md_wakeup_thread(mddev->thread); | 4160 | md_wakeup_thread(mddev->thread); |
| 4152 | md_new_event(mddev); | 4161 | md_new_event_inintr(mddev); |
| 4153 | } | 4162 | } |
| 4154 | 4163 | ||
| 4155 | /* seq_file implementation /proc/mdstat */ | 4164 | /* seq_file implementation /proc/mdstat */ |
