cfq-iosched: don't pass in queue for cfq_arm_slice_timer()
authorJens Axboe <jens.axboe@oracle.com>
Fri, 19 Jan 2007 00:59:30 +0000 (11:59 +1100)
committerJens Axboe <axboe@carl.home.kernel.dk>
Sun, 11 Feb 2007 22:14:45 +0000 (23:14 +0100)
It must always be the active queue, otherwise it's a bug. So just
use the active_queue, don't pass it in explicitly.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/cfq-iosched.c

index 039b38cf805c51cc012cc732cde8e48ed67ea1ee..3df41a00b55326271ba05c289da62a8d8491710b 100644 (file)
@@ -822,14 +822,13 @@ static struct cfq_queue *cfq_set_active_queue(struct cfq_data *cfqd)
 
 #define CIC_SEEKY(cic) ((cic)->seek_mean > (128 * 1024))
 
-static int cfq_arm_slice_timer(struct cfq_data *cfqd, struct cfq_queue *cfqq)
-
+static int cfq_arm_slice_timer(struct cfq_data *cfqd)
 {
+       struct cfq_queue *cfqq = cfqd->active_queue;
        struct cfq_io_context *cic;
        unsigned long sl;
 
        WARN_ON(!RB_EMPTY_ROOT(&cfqq->sort_list));
-       WARN_ON(cfqq != cfqd->active_queue);
 
        /*
         * idle is disabled, either manually or by past process history
@@ -937,7 +936,7 @@ static struct cfq_queue *cfq_select_queue(struct cfq_data *cfqd)
                cfqq = NULL;
                goto keep_queue;
        } else if (cfq_cfqq_class_sync(cfqq)) {
-               if (cfq_arm_slice_timer(cfqd, cfqq))
+               if (cfq_arm_slice_timer(cfqd))
                        return NULL;
        }
 
@@ -1734,7 +1733,7 @@ static void cfq_completed_request(request_queue_t *q, struct request *rq)
                if (cfq_slice_used(cfqq))
                        cfq_slice_expired(cfqd, 0);
                else if (sync && RB_EMPTY_ROOT(&cfqq->sort_list)) {
-                       if (!cfq_arm_slice_timer(cfqd, cfqq))
+                       if (!cfq_arm_slice_timer(cfqd))
                                cfq_schedule_dispatch(cfqd);
                }
        }