--- 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;