summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2003-07-04 19:36:23 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-07-04 19:36:23 -0700
commit104e6fdc6f35ea08e1c6ed03158b336b2e9983ed (patch)
tree1a71ac3ab118e44192fe9aa38a6aec11134663b1 /include/linux
parent7d2483a936d9012f0a8ed9b61e191d6b827a66d2 (diff)
[PATCH] elevator completion API
From: Nick Piggin <piggin@cyberone.com.au> Introduces an elevator_completed_req() callback with which the generic queueing layer may tell an IO scheduler that a particualr request has finished.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/elevator.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/elevator.h b/include/linux/elevator.h
index 66bedb242218..07de69c1ef8a 100644
--- a/include/linux/elevator.h
+++ b/include/linux/elevator.h
@@ -15,6 +15,7 @@ typedef int (elevator_queue_empty_fn) (request_queue_t *);
typedef void (elevator_remove_req_fn) (request_queue_t *, struct request *);
typedef struct request *(elevator_request_list_fn) (request_queue_t *, struct request *);
typedef struct list_head *(elevator_get_sort_head_fn) (request_queue_t *, struct request *);
+typedef void (elevator_completed_req_fn) (request_queue_t *, struct request *);
typedef int (elevator_may_queue_fn) (request_queue_t *, int);
typedef int (elevator_set_req_fn) (request_queue_t *, struct request *, int);
@@ -34,6 +35,7 @@ struct elevator_s
elevator_remove_req_fn *elevator_remove_req_fn;
elevator_queue_empty_fn *elevator_queue_empty_fn;
+ elevator_completed_req_fn *elevator_completed_req_fn;
elevator_request_list_fn *elevator_former_req_fn;
elevator_request_list_fn *elevator_latter_req_fn;
@@ -69,6 +71,7 @@ extern struct request *elv_latter_request(request_queue_t *, struct request *);
extern int elv_register_queue(struct gendisk *);
extern void elv_unregister_queue(struct gendisk *);
extern int elv_may_queue(request_queue_t *, int);
+extern void elv_completed_request(request_queue_t *, struct request *);
extern int elv_set_request(request_queue_t *, struct request *, int);
extern void elv_put_request(request_queue_t *, struct request *);