|
@@ -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);
|