aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2010-07-25 21:49:55 -0400
committerNeilBrown <neilb@suse.de>2010-07-25 22:52:27 -0400
commit768a418db102bb6aa6064e6090892b5c21ff1f9e (patch)
tree2f33acbf0ca542f43c8014201b539ae8f461ee5c /drivers
parent390ee602a142a93f2c7eb7bffee8e277058b8e0a (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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/md/md.c2
-rw-r--r--drivers/md/md.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 012482a900f..f8775699e15 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 6e7e3495f6e..c88b04745e8 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