aboutsummaryrefslogtreecommitdiffstats
path: root/block/cfq-iosched.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-03-04 13:09:02 -0500
committerTejun Heo <tj@kernel.org>2011-03-04 13:09:02 -0500
commite83a46bbb1d4c03defd733a64b727632a40059ad (patch)
treec4bc4822b2d3af1bf38095f531adc0a2aac054a5 /block/cfq-iosched.c
parentda527770007fce8e4541947d47918248286da875 (diff)
parentfd51469fb68b987032e46297e0a4fe9020063c20 (diff)
Merge branch 'for-linus' of ../linux-2.6-block into block-for-2.6.39/core
This merge creates two set of conflicts. One is simple context conflicts caused by removal of throtl_scheduled_delayed_work() in for-linus and removal of throtl_shutdown_timer_wq() in for-2.6.39/core. The other is caused by commit 255bb490c8 (block: blk-flush shouldn't call directly into q->request_fn() __blk_run_queue()) in for-linus crashing with FLUSH reimplementation in for-2.6.39/core. The conflict isn't trivial but the resolution is straight-forward. * __blk_run_queue() calls in flush_end_io() and flush_data_end_io() should be called with @force_kblockd set to %true. * elv_insert() in blk_kick_flush() should use %ELEVATOR_INSERT_REQUEUE. Both changes are to avoid invoking ->request_fn() directly from request completion path and closely match the changes in the commit 255bb490c8. Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'block/cfq-iosched.c')
-rw-r--r--block/cfq-iosched.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 3202c7e87fb3..89dc745c7d94 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -3324,7 +3324,7 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,
3324 cfqd->busy_queues > 1) { 3324 cfqd->busy_queues > 1) {
3325 cfq_del_timer(cfqd, cfqq); 3325 cfq_del_timer(cfqd, cfqq);
3326 cfq_clear_cfqq_wait_request(cfqq); 3326 cfq_clear_cfqq_wait_request(cfqq);
3327 __blk_run_queue(cfqd->queue); 3327 __blk_run_queue(cfqd->queue, false);
3328 } else { 3328 } else {
3329 cfq_blkiocg_update_idle_time_stats( 3329 cfq_blkiocg_update_idle_time_stats(
3330 &cfqq->cfqg->blkg); 3330 &cfqq->cfqg->blkg);
@@ -3339,7 +3339,7 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,
3339 * this new queue is RT and the current one is BE 3339 * this new queue is RT and the current one is BE
3340 */ 3340 */
3341 cfq_preempt_queue(cfqd, cfqq); 3341 cfq_preempt_queue(cfqd, cfqq);
3342 __blk_run_queue(cfqd->queue); 3342 __blk_run_queue(cfqd->queue, false);
3343 } 3343 }
3344} 3344}
3345 3345
@@ -3700,7 +3700,7 @@ static void cfq_kick_queue(struct work_struct *work)
3700 struct request_queue *q = cfqd->queue; 3700 struct request_queue *q = cfqd->queue;
3701 3701
3702 spin_lock_irq(q->queue_lock); 3702 spin_lock_irq(q->queue_lock);
3703 __blk_run_queue(cfqd->queue); 3703 __blk_run_queue(cfqd->queue, false);
3704 spin_unlock_irq(q->queue_lock); 3704 spin_unlock_irq(q->queue_lock);
3705} 3705}
3706 3706