aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/md.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/md.h')
-rw-r--r--drivers/md/md.h12
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);
432extern void md_error(mddev_t *mddev, mdk_rdev_t *rdev); 443extern void md_error(mddev_t *mddev, mdk_rdev_t *rdev);
433 444
434extern int mddev_congested(mddev_t *mddev, int bits); 445extern int mddev_congested(mddev_t *mddev, int bits);
446extern void md_barrier_request(mddev_t *mddev, struct bio *bio);
435extern void md_super_write(mddev_t *mddev, mdk_rdev_t *rdev, 447extern 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);
437extern void md_super_wait(mddev_t *mddev); 449extern void md_super_wait(mddev_t *mddev);