diff options
Diffstat (limited to 'drivers/md/md.h')
| -rw-r--r-- | drivers/md/md.h | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/drivers/md/md.h b/drivers/md/md.h index 52b407369e13..0b1fd3f1d85b 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h | |||
| @@ -29,26 +29,6 @@ | |||
| 29 | typedef struct mddev_s mddev_t; | 29 | typedef struct mddev_s mddev_t; |
| 30 | typedef struct mdk_rdev_s mdk_rdev_t; | 30 | typedef struct mdk_rdev_s mdk_rdev_t; |
| 31 | 31 | ||
| 32 | /* generic plugging support - like that provided with request_queue, | ||
| 33 | * but does not require a request_queue | ||
| 34 | */ | ||
| 35 | struct plug_handle { | ||
| 36 | void (*unplug_fn)(struct plug_handle *); | ||
| 37 | struct timer_list unplug_timer; | ||
| 38 | struct work_struct unplug_work; | ||
| 39 | unsigned long unplug_flag; | ||
| 40 | }; | ||
| 41 | #define PLUGGED_FLAG 1 | ||
| 42 | void plugger_init(struct plug_handle *plug, | ||
| 43 | void (*unplug_fn)(struct plug_handle *)); | ||
| 44 | void plugger_set_plug(struct plug_handle *plug); | ||
| 45 | int plugger_remove_plug(struct plug_handle *plug); | ||
| 46 | static inline void plugger_flush(struct plug_handle *plug) | ||
| 47 | { | ||
| 48 | del_timer_sync(&plug->unplug_timer); | ||
| 49 | cancel_work_sync(&plug->unplug_work); | ||
| 50 | } | ||
| 51 | |||
| 52 | /* | 32 | /* |
| 53 | * MD's 'extended' device | 33 | * MD's 'extended' device |
| 54 | */ | 34 | */ |
| @@ -199,6 +179,9 @@ struct mddev_s | |||
| 199 | int delta_disks, new_level, new_layout; | 179 | int delta_disks, new_level, new_layout; |
| 200 | int new_chunk_sectors; | 180 | int new_chunk_sectors; |
| 201 | 181 | ||
| 182 | atomic_t plug_cnt; /* If device is expecting | ||
| 183 | * more bios soon. | ||
| 184 | */ | ||
| 202 | struct mdk_thread_s *thread; /* management thread */ | 185 | struct mdk_thread_s *thread; /* management thread */ |
| 203 | struct mdk_thread_s *sync_thread; /* doing resync or reconstruct */ | 186 | struct mdk_thread_s *sync_thread; /* doing resync or reconstruct */ |
| 204 | sector_t curr_resync; /* last block scheduled */ | 187 | sector_t curr_resync; /* last block scheduled */ |
| @@ -336,7 +319,6 @@ struct mddev_s | |||
| 336 | struct list_head all_mddevs; | 319 | struct list_head all_mddevs; |
| 337 | 320 | ||
| 338 | struct attribute_group *to_remove; | 321 | struct attribute_group *to_remove; |
| 339 | struct plug_handle *plug; /* if used by personality */ | ||
| 340 | 322 | ||
| 341 | struct bio_set *bio_set; | 323 | struct bio_set *bio_set; |
| 342 | 324 | ||
| @@ -516,7 +498,6 @@ extern int md_integrity_register(mddev_t *mddev); | |||
| 516 | extern void md_integrity_add_rdev(mdk_rdev_t *rdev, mddev_t *mddev); | 498 | extern void md_integrity_add_rdev(mdk_rdev_t *rdev, mddev_t *mddev); |
| 517 | extern int strict_strtoul_scaled(const char *cp, unsigned long *res, int scale); | 499 | extern int strict_strtoul_scaled(const char *cp, unsigned long *res, int scale); |
| 518 | extern void restore_bitmap_write_access(struct file *file); | 500 | extern void restore_bitmap_write_access(struct file *file); |
| 519 | extern void md_unplug(mddev_t *mddev); | ||
| 520 | 501 | ||
| 521 | extern void mddev_init(mddev_t *mddev); | 502 | extern void mddev_init(mddev_t *mddev); |
| 522 | extern int md_run(mddev_t *mddev); | 503 | extern int md_run(mddev_t *mddev); |
| @@ -530,4 +511,5 @@ extern struct bio *bio_clone_mddev(struct bio *bio, gfp_t gfp_mask, | |||
| 530 | mddev_t *mddev); | 511 | mddev_t *mddev); |
| 531 | extern struct bio *bio_alloc_mddev(gfp_t gfp_mask, int nr_iovecs, | 512 | extern struct bio *bio_alloc_mddev(gfp_t gfp_mask, int nr_iovecs, |
| 532 | mddev_t *mddev); | 513 | mddev_t *mddev); |
| 514 | extern int mddev_check_plugged(mddev_t *mddev); | ||
| 533 | #endif /* _MD_MD_H */ | 515 | #endif /* _MD_MD_H */ |
