diff options
Diffstat (limited to 'block/as-iosched.c')
-rw-r--r-- | block/as-iosched.c | 14 |
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 | */ |
746 | static int as_can_anticipate(struct as_data *ad, struct request *rq) | 746 | static 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) |