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>
This commit is contained in:
		
							parent
							
								
									57c67df488
								
							
						
					
					
						commit
						4ed8731d8e
					
				| @ -6641,7 +6641,7 @@ static int md_thread(void * arg) | ||||
| 
 | ||||
| 		clear_bit(THREAD_WAKEUP, &thread->flags); | ||||
| 		if (!kthread_should_stop()) | ||||
| 			thread->run(thread->mddev); | ||||
| 			thread->run(thread); | ||||
| 	} | ||||
| 
 | ||||
| 	return 0; | ||||
| @ -6656,8 +6656,8 @@ void md_wakeup_thread(struct md_thread *thread) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| struct md_thread *md_register_thread(void (*run) (struct mddev *), struct mddev *mddev, | ||||
| 				 const char *name) | ||||
| struct md_thread *md_register_thread(void (*run) (struct md_thread *), | ||||
| 		struct mddev *mddev, const char *name) | ||||
| { | ||||
| 	struct md_thread *thread; | ||||
| 
 | ||||
| @ -7206,8 +7206,9 @@ EXPORT_SYMBOL_GPL(md_allow_write); | ||||
| 
 | ||||
| #define SYNC_MARKS	10 | ||||
| #define	SYNC_MARK_STEP	(3*HZ) | ||||
| void md_do_sync(struct mddev *mddev) | ||||
| void md_do_sync(struct md_thread *thread) | ||||
| { | ||||
| 	struct mddev *mddev = thread->mddev; | ||||
| 	struct mddev *mddev2; | ||||
| 	unsigned int currspeed = 0, | ||||
| 		 window; | ||||
|  | ||||
| @ -540,12 +540,13 @@ static inline void sysfs_unlink_rdev(struct mddev *mddev, struct md_rdev *rdev) | ||||
| 	list_for_each_entry_rcu(rdev, &((mddev)->disks), same_set) | ||||
| 
 | ||||
| struct md_thread { | ||||
| 	void			(*run) (struct mddev *mddev); | ||||
| 	void			(*run) (struct md_thread *thread); | ||||
| 	struct mddev		*mddev; | ||||
| 	wait_queue_head_t	wqueue; | ||||
| 	unsigned long           flags; | ||||
| 	struct task_struct	*tsk; | ||||
| 	unsigned long		timeout; | ||||
| 	void			*private; | ||||
| }; | ||||
| 
 | ||||
| #define THREAD_WAKEUP  0 | ||||
| @ -584,7 +585,7 @@ static inline void safe_put_page(struct page *p) | ||||
| extern int register_md_personality(struct md_personality *p); | ||||
| extern int unregister_md_personality(struct md_personality *p); | ||||
| extern struct md_thread *md_register_thread( | ||||
| 	void (*run)(struct mddev *mddev), | ||||
| 	void (*run)(struct md_thread *thread), | ||||
| 	struct mddev *mddev, | ||||
| 	const char *name); | ||||
| 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, | ||||
| extern void md_super_wait(struct mddev *mddev); | ||||
| extern int sync_page_io(struct md_rdev *rdev, sector_t sector, int size,  | ||||
| 			struct page *page, int rw, bool metadata_op); | ||||
| extern void md_do_sync(struct mddev *mddev); | ||||
| extern void md_do_sync(struct md_thread *thread); | ||||
| extern void md_new_event(struct mddev *mddev); | ||||
| extern int md_allow_write(struct mddev *mddev); | ||||
| extern void md_wait_for_blocked_rdev(struct md_rdev *rdev, struct mddev *mddev); | ||||
|  | ||||
| @ -335,8 +335,9 @@ abort: | ||||
|  *	3.	Performs writes following reads for array syncronising. | ||||
|  */ | ||||
| 
 | ||||
| static void multipathd (struct mddev *mddev) | ||||
| static void multipathd(struct md_thread *thread) | ||||
| { | ||||
| 	struct mddev *mddev = thread->mddev; | ||||
| 	struct multipath_bh *mp_bh; | ||||
| 	struct bio *bio; | ||||
| 	unsigned long flags; | ||||
|  | ||||
| @ -2294,8 +2294,9 @@ read_more: | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| static void raid1d(struct mddev *mddev) | ||||
| static void raid1d(struct md_thread *thread) | ||||
| { | ||||
| 	struct mddev *mddev = thread->mddev; | ||||
| 	struct r1bio *r1_bio; | ||||
| 	unsigned long flags; | ||||
| 	struct r1conf *conf = mddev->private; | ||||
|  | ||||
| @ -2732,8 +2732,9 @@ static void handle_write_completed(struct r10conf *conf, struct r10bio *r10_bio) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| static void raid10d(struct mddev *mddev) | ||||
| static void raid10d(struct md_thread *thread) | ||||
| { | ||||
| 	struct mddev *mddev = thread->mddev; | ||||
| 	struct r10bio *r10_bio; | ||||
| 	unsigned long flags; | ||||
| 	struct r10conf *conf = mddev->private; | ||||
|  | ||||
| @ -4625,8 +4625,9 @@ static int handle_active_stripes(struct r5conf *conf) | ||||
|  * During the scan, completed stripes are saved for us by the interrupt | ||||
|  * handler, so that they will not have to wait for our next wakeup. | ||||
|  */ | ||||
| static void raid5d(struct mddev *mddev) | ||||
| static void raid5d(struct md_thread *thread) | ||||
| { | ||||
| 	struct mddev *mddev = thread->mddev; | ||||
| 	struct r5conf *conf = mddev->private; | ||||
| 	int handled; | ||||
| 	struct blk_plug plug; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user