--- diff/include/linux/blkdev.h 2003-08-11 13:26:01.000000000 +0100 +++ source/include/linux/blkdev.h 2003-08-18 11:50:10.000000000 +0100 @@ -237,7 +237,29 @@ typedef int (merge_requests_fn) (request_queue_t *, struct request *, struct request *); typedef void (request_fn_proc) (request_queue_t *q); -typedef int (make_request_fn) (request_queue_t *q, struct bio *bio); + +/* + * This function optionally remaps the bio, and sets any + * restrictions on the bio (eg, length, phys segments etc.). + * Typically data pages will not be attached to the bio when this + * function is called. After calling this function successfully + * one the bio must either be cancelled or submitted at some + * point. + * + * Returns 1 if the bio was remapped, 0 if not, <0 on error. + */ +typedef int (map_request_fn) (request_queue_t *q, struct bio *bio); + +/* + * Cancel a mapped bio. + */ +typedef void (cancel_request_fn) (request_queue_t *q, struct bio *bio); + +/* + * Submit a bio. + */ +typedef void (submit_request_fn) (request_queue_t *q, struct bio *bio); + typedef int (prep_rq_fn) (request_queue_t *, struct request *); typedef void (unplug_fn) (void *q); @@ -279,7 +301,9 @@ merge_request_fn *back_merge_fn; merge_request_fn *front_merge_fn; merge_requests_fn *merge_requests_fn; - make_request_fn *make_request_fn; + map_request_fn *map_request_fn; + cancel_request_fn *cancel_request_fn; + submit_request_fn *submit_request_fn; prep_rq_fn *prep_rq_fn; unplug_fn *unplug_fn; merge_bvec_fn *merge_bvec_fn;