]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] uninline elv_next_request()
authorJens Axboe <axboe@suse.de>
Thu, 20 Jun 2002 07:05:46 +0000 (00:05 -0700)
committerLinus Torvalds <torvalds@penguin.transmeta.com>
Thu, 20 Jun 2002 07:05:46 +0000 (00:05 -0700)
Uninline elv_next_request() and move it to elevator.c, where it belongs.
Because of CURRENT declaration, this actually saves lots of space.  From
Andrew.

drivers/block/elevator.c
include/linux/blk.h
include/linux/elevator.h

index c7f8eebe530e04833dfb89183450204fd181f72a..348497d2342a75c98a8bd625618c11dd6da90b42 100644 (file)
@@ -388,11 +388,43 @@ void __elv_add_request(request_queue_t *q, struct request *rq,
        q->elevator.elevator_add_req_fn(q, rq, insert_here);
 }
 
-struct request *__elv_next_request(request_queue_t *q)
+static inline struct request *__elv_next_request(request_queue_t *q)
 {
        return q->elevator.elevator_next_req_fn(q);
 }
 
+struct request *elv_next_request(request_queue_t *q)
+{
+       struct request *rq;
+
+       while ((rq = __elv_next_request(q))) {
+               rq->flags |= REQ_STARTED;
+
+               if (&rq->queuelist == q->last_merge)
+                       q->last_merge = NULL;
+
+               if ((rq->flags & REQ_DONTPREP) || !q->prep_rq_fn)
+                       break;
+
+               /*
+                * all ok, break and return it
+                */
+               if (!q->prep_rq_fn(q, rq))
+                       break;
+
+               /*
+                * prep said no-go, kill it
+                */
+               blkdev_dequeue_request(rq);
+               if (end_that_request_first(rq, 0, rq->nr_sectors))
+                       BUG();
+
+               end_that_request_last(rq);
+       }
+
+       return rq;
+}
+
 void elv_remove_request(request_queue_t *q, struct request *rq)
 {
        elevator_t *e = &q->elevator;
@@ -423,7 +455,7 @@ EXPORT_SYMBOL(elevator_linus);
 EXPORT_SYMBOL(elevator_noop);
 
 EXPORT_SYMBOL(__elv_add_request);
-EXPORT_SYMBOL(__elv_next_request);
+EXPORT_SYMBOL(elv_next_request);
 EXPORT_SYMBOL(elv_remove_request);
 EXPORT_SYMBOL(elevator_exit);
 EXPORT_SYMBOL(elevator_init);
index 69aa2fa94a978ab49ae9df5f2b4c5299afe081ce..7fbd3f6acae8c7db38b5cd1576f694da3906ff15 100644 (file)
@@ -40,6 +40,7 @@ void initrd_init(void);
 
 extern int end_that_request_first(struct request *, int, int);
 extern void end_that_request_last(struct request *);
+struct request *elv_next_request(request_queue_t *q);
 
 static inline void blkdev_dequeue_request(struct request *req)
 {
@@ -49,38 +50,6 @@ static inline void blkdev_dequeue_request(struct request *req)
                elv_remove_request(req->q, req);
 }
 
-extern inline struct request *elv_next_request(request_queue_t *q)
-{
-       struct request *rq;
-
-       while ((rq = __elv_next_request(q))) {
-               rq->flags |= REQ_STARTED;
-
-               if (&rq->queuelist == q->last_merge)
-                       q->last_merge = NULL;
-
-               if ((rq->flags & REQ_DONTPREP) || !q->prep_rq_fn)
-                       break;
-
-               /*
-                * all ok, break and return it
-                */
-               if (!q->prep_rq_fn(q, rq))
-                       break;
-
-               /*
-                * prep said no-go, kill it
-                */
-               blkdev_dequeue_request(rq);
-               if (end_that_request_first(rq, 0, rq->nr_sectors))
-                       BUG();
-
-               end_that_request_last(rq);
-       }
-
-       return rq;
-}
-
 #define _elv_add_request_core(q, rq, where, plug)                      \
        do {                                                            \
                if ((plug))                                             \
index 44cbb0e8e8fe21e500c8810a74fd0bfc25adb89d..3bd08ecdaf0b33d080be6673f6f7a87de7750e56 100644 (file)
@@ -40,7 +40,6 @@ struct elevator_s
  */
 extern void __elv_add_request(request_queue_t *, struct request *,
                              struct list_head *);
-extern struct request *__elv_next_request(request_queue_t *);
 extern void elv_merge_cleanup(request_queue_t *, struct request *, int);
 extern int elv_merge(request_queue_t *, struct request **, struct bio *);
 extern void elv_merge_requests(request_queue_t *, struct request *,