diff options
author | NeilBrown <neilb@suse.de> | 2010-07-25 21:49:55 -0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2010-07-25 22:52:27 -0400 |
commit | 768a418db102bb6aa6064e6090892b5c21ff1f9e (patch) | |
tree | 2f33acbf0ca542f43c8014201b539ae8f461ee5c | |
parent | 390ee602a142a93f2c7eb7bffee8e277058b8e0a (diff) |
md: add support for raising dm events.
dm uses scheduled work to raise events to user-space.
So allow md device to have work_structs and schedule them on an error.
Signed-off-by: NeilBrown <neilb@suse.de>
-rw-r--r-- | drivers/md/md.c | 2 | ||||
-rw-r--r-- | drivers/md/md.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 012482a900fc..f8775699e15a 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -6068,6 +6068,8 @@ void md_error(mddev_t *mddev, mdk_rdev_t *rdev) | |||
6068 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); | 6068 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); |
6069 | set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); | 6069 | set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); |
6070 | md_wakeup_thread(mddev->thread); | 6070 | md_wakeup_thread(mddev->thread); |
6071 | if (mddev->event_work.func) | ||
6072 | schedule_work(&mddev->event_work); | ||
6071 | md_new_event_inintr(mddev); | 6073 | md_new_event_inintr(mddev); |
6072 | } | 6074 | } |
6073 | 6075 | ||
diff --git a/drivers/md/md.h b/drivers/md/md.h index 6e7e3495f6e4..c88b04745e85 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h | |||
@@ -318,6 +318,7 @@ struct mddev_s | |||
318 | struct bio *barrier; | 318 | struct bio *barrier; |
319 | atomic_t flush_pending; | 319 | atomic_t flush_pending; |
320 | struct work_struct barrier_work; | 320 | struct work_struct barrier_work; |
321 | struct work_struct event_work; /* used by dm to report failure event */ | ||
321 | }; | 322 | }; |
322 | 323 | ||
323 | 324 | ||