diff options
Diffstat (limited to 'drivers/md/md.h')
-rw-r--r-- | drivers/md/md.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/md/md.h b/drivers/md/md.h index 87430fea2875..cb036868a9e9 100644 --- a/drivers/md/md.h +++ b/drivers/md/md.h | |||
@@ -292,6 +292,17 @@ struct mddev_s | |||
292 | struct mutex bitmap_mutex; | 292 | struct mutex bitmap_mutex; |
293 | 293 | ||
294 | struct list_head all_mddevs; | 294 | struct list_head all_mddevs; |
295 | |||
296 | /* Generic barrier handling. | ||
297 | * If there is a pending barrier request, all other | ||
298 | * writes are blocked while the devices are flushed. | ||
299 | * The last to finish a flush schedules a worker to | ||
300 | * submit the barrier request (without the barrier flag), | ||
301 | * then submit more flush requests. | ||
302 | */ | ||
303 | struct bio *barrier; | ||
304 | atomic_t flush_pending; | ||
305 | struct work_struct barrier_work; | ||
295 | }; | 306 | }; |
296 | 307 | ||
297 | 308 | ||
@@ -432,6 +443,7 @@ extern void md_done_sync(mddev_t *mddev, int blocks, int ok); | |||
432 | extern void md_error(mddev_t *mddev, mdk_rdev_t *rdev); | 443 | extern void md_error(mddev_t *mddev, mdk_rdev_t *rdev); |
433 | 444 | ||
434 | extern int mddev_congested(mddev_t *mddev, int bits); | 445 | extern int mddev_congested(mddev_t *mddev, int bits); |
446 | extern void md_barrier_request(mddev_t *mddev, struct bio *bio); | ||
435 | extern void md_super_write(mddev_t *mddev, mdk_rdev_t *rdev, | 447 | extern void md_super_write(mddev_t *mddev, mdk_rdev_t *rdev, |
436 | sector_t sector, int size, struct page *page); | 448 | sector_t sector, int size, struct page *page); |
437 | extern void md_super_wait(mddev_t *mddev); | 449 | extern void md_super_wait(mddev_t *mddev); |