aboutsummaryrefslogtreecommitdiffstats
path: root/block/as-iosched.c
diff options
context:
space:
mode:
Diffstat (limited to 'block/as-iosched.c')
-rw-r--r--block/as-iosched.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/block/as-iosched.c b/block/as-iosched.c
index cf4eb0eefbbf..71f0abb219ee 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -462,7 +462,7 @@ static void as_antic_stop(struct as_data *ad)
462 del_timer(&ad->antic_timer); 462 del_timer(&ad->antic_timer);
463 ad->antic_status = ANTIC_FINISHED; 463 ad->antic_status = ANTIC_FINISHED;
464 /* see as_work_handler */ 464 /* see as_work_handler */
465 kblockd_schedule_work(&ad->antic_work); 465 kblockd_schedule_work(ad->q, &ad->antic_work);
466 } 466 }
467} 467}
468 468
@@ -483,7 +483,7 @@ static void as_antic_timeout(unsigned long data)
483 aic = ad->io_context->aic; 483 aic = ad->io_context->aic;
484 484
485 ad->antic_status = ANTIC_FINISHED; 485 ad->antic_status = ANTIC_FINISHED;
486 kblockd_schedule_work(&ad->antic_work); 486 kblockd_schedule_work(q, &ad->antic_work);
487 487
488 if (aic->ttime_samples == 0) { 488 if (aic->ttime_samples == 0) {
489 /* process anticipated on has exited or timed out*/ 489 /* process anticipated on has exited or timed out*/
@@ -745,6 +745,14 @@ static int as_can_break_anticipation(struct as_data *ad, struct request *rq)
745 */ 745 */
746static int as_can_anticipate(struct as_data *ad, struct request *rq) 746static int as_can_anticipate(struct as_data *ad, struct request *rq)
747{ 747{
748#if 0 /* disable for now, we need to check tag level as well */
749 /*
750 * SSD device without seek penalty, disable idling
751 */
752 if (blk_queue_nonrot(ad->q)) axman
753 return 0;
754#endif
755
748 if (!ad->io_context) 756 if (!ad->io_context)
749 /* 757 /*
750 * Last request submitted was a write 758 * Last request submitted was a write
@@ -844,7 +852,7 @@ static void as_completed_request(struct request_queue *q, struct request *rq)
844 if (ad->changed_batch && ad->nr_dispatched == 1) { 852 if (ad->changed_batch && ad->nr_dispatched == 1) {
845 ad->current_batch_expires = jiffies + 853 ad->current_batch_expires = jiffies +
846 ad->batch_expire[ad->batch_data_dir]; 854 ad->batch_expire[ad->batch_data_dir];
847 kblockd_schedule_work(&ad->antic_work); 855 kblockd_schedule_work(q, &ad->antic_work);
848 ad->changed_batch = 0; 856 ad->changed_batch = 0;
849 857
850 if (ad->batch_data_dir == REQ_SYNC) 858 if (ad->batch_data_dir == REQ_SYNC)