summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2003-07-04 19:36:16 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-07-04 19:36:16 -0700
commit7d2483a936d9012f0a8ed9b61e191d6b827a66d2 (patch)
tree9ed75d944e5bbc12a9067302336971e00d103a53 /include/linux
parent33c664854c9c467f4c30fe038c2afa12cc126311 (diff)
[PATCH] elv_may_queue() API function
Introduces the elv_may_queue() predicate with which the IO scheduler may tell the generic request layer that we may add another request to this queue. It is used by the CFQ elevator.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/elevator.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/elevator.h b/include/linux/elevator.h
index 522e51609ef3..66bedb242218 100644
--- a/include/linux/elevator.h
+++ b/include/linux/elevator.h
@@ -15,6 +15,8 @@ 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 int (elevator_may_queue_fn) (request_queue_t *, int);
+
typedef int (elevator_set_req_fn) (request_queue_t *, struct request *, int);
typedef void (elevator_put_req_fn) (request_queue_t *, struct request *);
@@ -39,6 +41,8 @@ struct elevator_s
elevator_set_req_fn *elevator_set_req_fn;
elevator_put_req_fn *elevator_put_req_fn;
+ elevator_may_queue_fn *elevator_may_queue_fn;
+
elevator_init_fn *elevator_init_fn;
elevator_exit_fn *elevator_exit_fn;
@@ -64,6 +68,7 @@ extern struct request *elv_former_request(request_queue_t *, struct request *);
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 int elv_set_request(request_queue_t *, struct request *, int);
extern void elv_put_request(request_queue_t *, struct request *);