diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/raid/md.h | 7 | ||||
| -rw-r--r-- | include/linux/raid/md_k.h | 7 | ||||
| -rw-r--r-- | include/linux/raid/multipath.h | 1 | ||||
| -rw-r--r-- | include/linux/raid/raid1.h | 2 | ||||
| -rw-r--r-- | include/linux/raid/raid5.h | 2 |
5 files changed, 9 insertions, 10 deletions
diff --git a/include/linux/raid/md.h b/include/linux/raid/md.h index 3260343d634e..3d4faa9f7171 100644 --- a/include/linux/raid/md.h +++ b/include/linux/raid/md.h @@ -69,13 +69,14 @@ extern inline char * bdev_partition_name (struct block_device *bdev) } extern int register_md_personality (int p_num, mdk_personality_t *p); extern int unregister_md_personality (int p_num); -extern mdk_thread_t * md_register_thread (void (*run) (void *data), - void *data, const char *name); +extern mdk_thread_t * md_register_thread (void (*run) (mddev_t *mddev), + mddev_t *mddev, const char *name); extern void md_unregister_thread (mdk_thread_t *thread); extern void md_wakeup_thread(mdk_thread_t *thread); +extern void md_check_recovery(mddev_t *mddev); extern void md_interrupt_thread (mdk_thread_t *thread); extern void md_write_start(mddev_t *mddev); -extern void md_write_end(mddev_t *mddev, mdk_thread_t *thread); +extern void md_write_end(mddev_t *mddev); extern void md_handle_safemode(mddev_t *mddev); extern void md_done_sync(mddev_t *mddev, int blocks, int ok); extern void md_sync_acct(mdk_rdev_t *rdev, unsigned long nr_sectors); diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h index 137c64966057..eb232ae1c768 100644 --- a/include/linux/raid/md_k.h +++ b/include/linux/raid/md_k.h @@ -206,12 +206,14 @@ struct mddev_s char uuid[16]; + struct mdk_thread_s *thread; /* management thread */ struct mdk_thread_s *sync_thread; /* doing resync or reconstruct */ unsigned long curr_resync; /* blocks scheduled */ unsigned long resync_mark; /* a recent timestamp */ unsigned long resync_mark_cnt;/* blocks written at resync_mark */ /* recovery/resync flags + * NEEDED: we might need to start a resync/recover * RUNNING: a thread is running, or about to be started * SYNC: actually doing a resync, not a recovery * ERR: and IO error was detected - abort the resync/recovery @@ -223,6 +225,7 @@ struct mddev_s #define MD_RECOVERY_ERR 2 #define MD_RECOVERY_INTR 3 #define MD_RECOVERY_DONE 4 +#define MD_RECOVERY_NEEDED 5 unsigned long recovery; int in_sync; /* know to not need resync */ @@ -298,8 +301,8 @@ extern mdk_rdev_t * find_rdev_nr(mddev_t *mddev, int nr); ITERATE_RDEV_GENERIC(pending_raid_disks,rdev,tmp) typedef struct mdk_thread_s { - void (*run) (void *data); - void *data; + void (*run) (mddev_t *mddev); + mddev_t *mddev; wait_queue_head_t wqueue; unsigned long flags; struct completion *event; diff --git a/include/linux/raid/multipath.h b/include/linux/raid/multipath.h index 50db7f3c8c57..42d040ea63df 100644 --- a/include/linux/raid/multipath.h +++ b/include/linux/raid/multipath.h @@ -13,7 +13,6 @@ struct multipath_private_data { struct multipath_info multipaths[MD_SB_DISKS]; int raid_disks; int working_disks; - mdk_thread_t *thread; spinlock_t device_lock; mempool_t *pool; diff --git a/include/linux/raid/raid1.h b/include/linux/raid/raid1.h index 9ed30f4d0748..cc7aa899a613 100644 --- a/include/linux/raid/raid1.h +++ b/include/linux/raid/raid1.h @@ -19,7 +19,6 @@ struct r1_private_data_s { int working_disks; int last_used; sector_t next_seq_sect; - mdk_thread_t *thread; spinlock_t device_lock; /* for use when syncing mirrors: */ @@ -34,7 +33,6 @@ struct r1_private_data_s { mempool_t *r1bio_pool; mempool_t *r1buf_pool; - char thread_name[MD_THREAD_NAME_MAX]; }; typedef struct r1_private_data_s conf_t; diff --git a/include/linux/raid/raid5.h b/include/linux/raid/raid5.h index 636e10b84502..c9eea7c884d0 100644 --- a/include/linux/raid/raid5.h +++ b/include/linux/raid/raid5.h @@ -203,7 +203,6 @@ struct disk_info { struct raid5_private_data { struct stripe_head **stripe_hashtbl; mddev_t *mddev; - mdk_thread_t *thread; struct disk_info disks[MD_SB_DISKS]; struct disk_info *spare; int chunk_size, level, algorithm; @@ -226,7 +225,6 @@ struct raid5_private_data { * waiting for 25% to be free */ spinlock_t device_lock; - char thread_name[MD_THREAD_NAME_MAX]; }; typedef struct raid5_private_data raid5_conf_t; |
