diff options
author | Shaohua Li <shli@kernel.org> | 2012-10-10 22:34:00 -0400 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2012-10-10 22:34:00 -0400 |
commit | 4ed8731d8e6bd2a88a30697fbf4f7e6e979a6c46 (patch) | |
tree | 3bb77592fa5a89b8e7f0ef84b8d7f53122bbd071 /drivers | |
parent | 57c67df48866d57b50d72eb198ffcc0cf7a6232d (diff) |
MD: change the parameter of md thread
Change the thread parameter, so the thread can carry extra info. Next patch
will use it.
Signed-off-by: Shaohua Li <shli@fusionio.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/md/md.c | 9 | ||||
-rw-r--r-- | drivers/md/md.h | 7 | ||||
-rw-r--r-- | drivers/md/multipath.c | 3 | ||||
-rw-r--r-- | drivers/md/raid1.c | 3 | ||||
-rw-r--r-- | drivers/md/raid10.c | 3 | ||||
-rw-r--r-- | drivers/md/raid5.c | 3 |
6 files changed, 17 insertions, 11 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 7a2b0793f66e..8e842b326ebd 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -6641,7 +6641,7 @@ static int md_thread(void * arg) | |||
6641 | 6641 | ||
6642 | clear_bit(THREAD_WAKEUP, &thread->flags); | 6642 | clear_bit(THREAD_WAKEUP, &thread->flags); |
6643 | if (!kthread_should_stop()) | 6643 | if (!kthread_should_stop()) |
6644 | thread->run(thread->mddev); | 6644 | thread->run(thread); |
6645 | } | 6645 | } |
6646 | 6646 | ||
6647 | return 0; | 6647 | return 0; |
@@ -6656,8 +6656,8 @@ void md_wakeup_thread(struct md_thread *thread) | |||
6656 | } | 6656 | } |
6657 | } | 6657 | } |
6658 | 6658 | ||
6659 | struct md_thread *md_register_thread(void (*run) (struct mddev *), struct mddev *mddev, | 6659 | struct md_thread *md_register_thread(void (*run) (struct md_thread *), |
6660 | const char *name) | 6660 | struct mddev *mddev, const char *name) |
6661 | { | 6661 | { |
6662 | struct md_thread *thread; | 6662 | struct md_thread *thread; |
6663 | 6663 | ||
@@ -7206,8 +7206,9 @@ EXPORT_SYMBOL_GPL(md_allow_write); | |||
7206 | 7206 | ||
7207 | #define SYNC_MARKS 10 | 7207 | #define SYNC_MARKS 10 |
7208 | #define SYNC_MARK_STEP (3*HZ) | 7208 | #define SYNC_MARK_STEP (3*HZ) |
7209 | void md_do_sync(struct mddev *mddev) | 7209 | void md_do_sync(struct md_thread *thread) |
7210 | { | 7210 | { |
7211 | struct mddev *mddev = thread->mddev; | ||
7211 | struct mddev *mddev2; | 7212 | struct mddev *mddev2; |
7212 | unsigned int currspeed = 0, | 7213 | unsigned int currspeed = 0, |
7213 | window; | 7214 | window; |
diff --git a/drivers/md/md.h b/drivers/md/md.h index f385b038589d..93ada214b50e 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h | |||
@@ -540,12 +540,13 @@ static inline void sysfs_unlink_rdev(struct mddev *mddev, struct md_rdev *rdev) | |||
540 | list_for_each_entry_rcu(rdev, &((mddev)->disks), same_set) | 540 | list_for_each_entry_rcu(rdev, &((mddev)->disks), same_set) |
541 | 541 | ||
542 | struct md_thread { | 542 | struct md_thread { |
543 | void (*run) (struct mddev *mddev); | 543 | void (*run) (struct md_thread *thread); |
544 | struct mddev *mddev; | 544 | struct mddev *mddev; |
545 | wait_queue_head_t wqueue; | 545 | wait_queue_head_t wqueue; |
546 | unsigned long flags; | 546 | unsigned long flags; |
547 | struct task_struct *tsk; | 547 | struct task_struct *tsk; |
548 | unsigned long timeout; | 548 | unsigned long timeout; |
549 | void *private; | ||
549 | }; | 550 | }; |
550 | 551 | ||
551 | #define THREAD_WAKEUP 0 | 552 | #define THREAD_WAKEUP 0 |
@@ -584,7 +585,7 @@ static inline void safe_put_page(struct page *p) | |||
584 | extern int register_md_personality(struct md_personality *p); | 585 | extern int register_md_personality(struct md_personality *p); |
585 | extern int unregister_md_personality(struct md_personality *p); | 586 | extern int unregister_md_personality(struct md_personality *p); |
586 | extern struct md_thread *md_register_thread( | 587 | extern struct md_thread *md_register_thread( |
587 | void (*run)(struct mddev *mddev), | 588 | void (*run)(struct md_thread *thread), |
588 | struct mddev *mddev, | 589 | struct mddev *mddev, |
589 | const char *name); | 590 | const char *name); |
590 | extern void md_unregister_thread(struct md_thread **threadp); | 591 | extern void md_unregister_thread(struct md_thread **threadp); |
@@ -603,7 +604,7 @@ extern void md_super_write(struct mddev *mddev, struct md_rdev *rdev, | |||
603 | extern void md_super_wait(struct mddev *mddev); | 604 | extern void md_super_wait(struct mddev *mddev); |
604 | extern int sync_page_io(struct md_rdev *rdev, sector_t sector, int size, | 605 | extern int sync_page_io(struct md_rdev *rdev, sector_t sector, int size, |
605 | struct page *page, int rw, bool metadata_op); | 606 | struct page *page, int rw, bool metadata_op); |
606 | extern void md_do_sync(struct mddev *mddev); | 607 | extern void md_do_sync(struct md_thread *thread); |
607 | extern void md_new_event(struct mddev *mddev); | 608 | extern void md_new_event(struct mddev *mddev); |
608 | extern int md_allow_write(struct mddev *mddev); | 609 | extern int md_allow_write(struct mddev *mddev); |
609 | extern void md_wait_for_blocked_rdev(struct md_rdev *rdev, struct mddev *mddev); | 610 | extern void md_wait_for_blocked_rdev(struct md_rdev *rdev, struct mddev *mddev); |
diff --git a/drivers/md/multipath.c b/drivers/md/multipath.c index 61a1833ebaf3..1642eae75a33 100644 --- a/drivers/md/multipath.c +++ b/drivers/md/multipath.c | |||
@@ -335,8 +335,9 @@ abort: | |||
335 | * 3. Performs writes following reads for array syncronising. | 335 | * 3. Performs writes following reads for array syncronising. |
336 | */ | 336 | */ |
337 | 337 | ||
338 | static void multipathd (struct mddev *mddev) | 338 | static void multipathd(struct md_thread *thread) |
339 | { | 339 | { |
340 | struct mddev *mddev = thread->mddev; | ||
340 | struct multipath_bh *mp_bh; | 341 | struct multipath_bh *mp_bh; |
341 | struct bio *bio; | 342 | struct bio *bio; |
342 | unsigned long flags; | 343 | unsigned long flags; |
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 05c557e8f862..55ccf4730536 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -2294,8 +2294,9 @@ read_more: | |||
2294 | } | 2294 | } |
2295 | } | 2295 | } |
2296 | 2296 | ||
2297 | static void raid1d(struct mddev *mddev) | 2297 | static void raid1d(struct md_thread *thread) |
2298 | { | 2298 | { |
2299 | struct mddev *mddev = thread->mddev; | ||
2299 | struct r1bio *r1_bio; | 2300 | struct r1bio *r1_bio; |
2300 | unsigned long flags; | 2301 | unsigned long flags; |
2301 | struct r1conf *conf = mddev->private; | 2302 | struct r1conf *conf = mddev->private; |
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 05dc96a950d5..54860604d097 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c | |||
@@ -2732,8 +2732,9 @@ static void handle_write_completed(struct r10conf *conf, struct r10bio *r10_bio) | |||
2732 | } | 2732 | } |
2733 | } | 2733 | } |
2734 | 2734 | ||
2735 | static void raid10d(struct mddev *mddev) | 2735 | static void raid10d(struct md_thread *thread) |
2736 | { | 2736 | { |
2737 | struct mddev *mddev = thread->mddev; | ||
2737 | struct r10bio *r10_bio; | 2738 | struct r10bio *r10_bio; |
2738 | unsigned long flags; | 2739 | unsigned long flags; |
2739 | struct r10conf *conf = mddev->private; | 2740 | struct r10conf *conf = mddev->private; |
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index adda94df5eb2..81c02d63440b 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -4625,8 +4625,9 @@ static int handle_active_stripes(struct r5conf *conf) | |||
4625 | * During the scan, completed stripes are saved for us by the interrupt | 4625 | * During the scan, completed stripes are saved for us by the interrupt |
4626 | * handler, so that they will not have to wait for our next wakeup. | 4626 | * handler, so that they will not have to wait for our next wakeup. |
4627 | */ | 4627 | */ |
4628 | static void raid5d(struct mddev *mddev) | 4628 | static void raid5d(struct md_thread *thread) |
4629 | { | 4629 | { |
4630 | struct mddev *mddev = thread->mddev; | ||
4630 | struct r5conf *conf = mddev->private; | 4631 | struct r5conf *conf = mddev->private; |
4631 | int handled; | 4632 | int handled; |
4632 | struct blk_plug plug; | 4633 | struct blk_plug plug; |