aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-07-31 03:08:14 -0400
committerJens Axboe <axboe@kernel.dk>2012-07-31 03:08:14 -0400
commit9cbb17508808f8a6bdd83354b61e126ac4fa6fed (patch)
treebc797d1b5cd829751a333115e6e6d52799fb6df2 /include
parent0021b7bc045e4b0b85d8c53614342aaf84ca96a5 (diff)
blk: centralize non-request unplug handling.
Both md and umem has similar code for getting notified on an blk_finish_plug event. Centralize this code in block/ and allow each driver to provide its distinctive difference. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include')
-rw-r--r--include/linux/blkdev.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 3816ce8a08fc..607ca228f47e 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -922,11 +922,15 @@ struct blk_plug {
922}; 922};
923#define BLK_MAX_REQUEST_COUNT 16 923#define BLK_MAX_REQUEST_COUNT 16
924 924
925struct blk_plug_cb;
926typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *);
925struct blk_plug_cb { 927struct blk_plug_cb {
926 struct list_head list; 928 struct list_head list;
927 void (*callback)(struct blk_plug_cb *); 929 blk_plug_cb_fn callback;
930 void *data;
928}; 931};
929 932extern struct blk_plug_cb *blk_check_plugged(blk_plug_cb_fn unplug,
933 void *data, int size);
930extern void blk_start_plug(struct blk_plug *); 934extern void blk_start_plug(struct blk_plug *);
931extern void blk_finish_plug(struct blk_plug *); 935extern void blk_finish_plug(struct blk_plug *);
932extern void blk_flush_plug_list(struct blk_plug *, bool); 936extern void blk_flush_plug_list(struct blk_plug *, bool);