diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 839086dcb0af51491c0d44c012292fdeeaf2d898..df82755ac40be58e4b4851ff9ef62edd79f05261 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1603,7 +1603,12 @@ static void
 cfq_update_idle_window(struct cfq_data *cfqd, struct cfq_queue *cfqq,
 		       struct cfq_io_context *cic)
 {
-	int enable_idle = cfq_cfqq_idle_window(cfqq);
+	int enable_idle;
+
+	if (!cfq_cfqq_sync(cfqq))
+		return;
+
+	enable_idle = cfq_cfqq_idle_window(cfqq);
 
 	if (!cic->ioc->task || !cfqd->cfq_slice_idle ||
 	    (cfqd->hw_tag && CIC_SEEKY(cic)))