--- zzzz-none-000/linux-2.6.19.2/block/cfq-iosched.c 2007-01-10 19:10:37.000000000 +0000 +++ davinci-8020-5505/linux-2.6.19.2/block/cfq-iosched.c 2007-01-11 07:38:19.000000000 +0000 @@ -456,9 +456,6 @@ */ while ((__alias = elv_rb_add(&cfqq->sort_list, rq)) != NULL) cfq_dispatch_insert(cfqd->queue, __alias); - - if (!cfq_cfqq_on_rr(cfqq)) - cfq_add_cfqq_rr(cfqd, cfqq); } static inline void @@ -1218,12 +1215,11 @@ { struct cfq_data *cfqd = cic->key; struct cfq_queue *cfqq; - unsigned long flags; if (unlikely(!cfqd)) return; - spin_lock_irqsave(cfqd->queue->queue_lock, flags); + spin_lock(cfqd->queue->queue_lock); cfqq = cic->cfqq[ASYNC]; if (cfqq) { @@ -1240,7 +1236,7 @@ if (cfqq) cfq_mark_cfqq_prio_changed(cfqq); - spin_unlock_irqrestore(cfqd->queue->queue_lock, flags); + spin_unlock(cfqd->queue->queue_lock); } static void cfq_ioc_set_ioprio(struct io_context *ioc) @@ -1366,7 +1362,6 @@ struct rb_node **p; struct rb_node *parent; struct cfq_io_context *__cic; - unsigned long flags; void *k; cic->ioc = ioc; @@ -1396,9 +1391,9 @@ rb_link_node(&cic->rb_node, parent, p); rb_insert_color(&cic->rb_node, &ioc->cic_root); - spin_lock_irqsave(cfqd->queue->queue_lock, flags); + spin_lock_irq(cfqd->queue->queue_lock); list_add(&cic->queue_list, &cfqd->cic_list); - spin_unlock_irqrestore(cfqd->queue->queue_lock, flags); + spin_unlock_irq(cfqd->queue->queue_lock); } /* @@ -1655,6 +1650,9 @@ cfq_add_rq_rb(rq); + if (!cfq_cfqq_on_rr(cfqq)) + cfq_add_cfqq_rr(cfqd, cfqq); + list_add_tail(&rq->queuelist, &cfqq->fifo); cfq_rq_enqueued(cfqd, cfqq, rq);