diff options
Diffstat (limited to 'block')
-rw-r--r-- | block/cfq-iosched.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 11ce6aaf1bd0..d582433441c5 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
@@ -879,6 +879,13 @@ static struct cfq_queue *cfq_set_active_queue(struct cfq_data *cfqd) | |||
879 | cfqq = list_entry_cfqq(cfqd->cur_rr.next); | 879 | cfqq = list_entry_cfqq(cfqd->cur_rr.next); |
880 | 880 | ||
881 | /* | 881 | /* |
882 | * If no new queues are available, check if the busy list has some | ||
883 | * before falling back to idle io. | ||
884 | */ | ||
885 | if (!cfqq && !list_empty(&cfqd->busy_rr)) | ||
886 | cfqq = list_entry_cfqq(cfqd->busy_rr.next); | ||
887 | |||
888 | /* | ||
882 | * if we have idle queues and no rt or be queues had pending | 889 | * if we have idle queues and no rt or be queues had pending |
883 | * requests, either allow immediate service if the grace period | 890 | * requests, either allow immediate service if the grace period |
884 | * has passed or arm the idle grace timer | 891 | * has passed or arm the idle grace timer |