diff options
author | Kiyoshi Ueda <k-ueda@ct.jp.nec.com> | 2008-09-18 10:45:38 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-10-09 02:56:18 -0400 |
commit | 82124d60354846623a4b94af335717a5e142a074 (patch) | |
tree | af7b98d5ef57483cfac53cc4866194391c3ff7b7 /include | |
parent | 32fab448e5e86694beade415e750363538ea5f49 (diff) |
block: add request submission interface
This patch adds blk_insert_cloned_request(), a generic request
submission interface for request stacking drivers.
Request-based dm will use it to submit their clones to underlying
devices.
blk_rq_check_limits() is also added because it is possible that
the lower queue has stronger limitations than the upper queue
if multiple drivers are stacking at request-level.
Not only for blk_insert_cloned_request()'s internal use, the function
will be used by request-based dm when the queue limitation is
modified (e.g. by replacing dm's table).
Signed-off-by: Kiyoshi Ueda <k-ueda@ct.jp.nec.com>
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/blkdev.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index e82a84c9f37a..964c246bc271 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -693,6 +693,9 @@ extern void __blk_put_request(struct request_queue *, struct request *); | |||
693 | extern struct request *blk_get_request(struct request_queue *, int, gfp_t); | 693 | extern struct request *blk_get_request(struct request_queue *, int, gfp_t); |
694 | extern void blk_insert_request(struct request_queue *, struct request *, int, void *); | 694 | extern void blk_insert_request(struct request_queue *, struct request *, int, void *); |
695 | extern void blk_requeue_request(struct request_queue *, struct request *); | 695 | extern void blk_requeue_request(struct request_queue *, struct request *); |
696 | extern int blk_rq_check_limits(struct request_queue *q, struct request *rq); | ||
697 | extern int blk_insert_cloned_request(struct request_queue *q, | ||
698 | struct request *rq); | ||
696 | extern void blk_plug_device(struct request_queue *); | 699 | extern void blk_plug_device(struct request_queue *); |
697 | extern void blk_plug_device_unlocked(struct request_queue *); | 700 | extern void blk_plug_device_unlocked(struct request_queue *); |
698 | extern int blk_remove_plug(struct request_queue *); | 701 | extern int blk_remove_plug(struct request_queue *); |