aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/blk-core.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/block/blk-core.c b/block/blk-core.c
index b1fd4f5f07d3..a824e49c0d0a 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -268,8 +268,7 @@ void __generic_unplug_device(struct request_queue *q)
268{ 268{
269 if (unlikely(blk_queue_stopped(q))) 269 if (unlikely(blk_queue_stopped(q)))
270 return; 270 return;
271 271 if (!blk_remove_plug(q) && !blk_queue_nonrot(q))
272 if (!blk_remove_plug(q))
273 return; 272 return;
274 273
275 q->request_fn(q); 274 q->request_fn(q);
@@ -1241,11 +1240,11 @@ get_rq:
1241 if (test_bit(QUEUE_FLAG_SAME_COMP, &q->queue_flags) || 1240 if (test_bit(QUEUE_FLAG_SAME_COMP, &q->queue_flags) ||
1242 bio_flagged(bio, BIO_CPU_AFFINE)) 1241 bio_flagged(bio, BIO_CPU_AFFINE))
1243 req->cpu = blk_cpu_to_group(smp_processor_id()); 1242 req->cpu = blk_cpu_to_group(smp_processor_id());
1244 if (elv_queue_empty(q)) 1243 if (!blk_queue_nonrot(q) && elv_queue_empty(q))
1245 blk_plug_device(q); 1244 blk_plug_device(q);
1246 add_request(q, req); 1245 add_request(q, req);
1247out: 1246out:
1248 if (sync) 1247 if (sync || blk_queue_nonrot(q))
1249 __generic_unplug_device(q); 1248 __generic_unplug_device(q);
1250 spin_unlock_irq(q->queue_lock); 1249 spin_unlock_irq(q->queue_lock);
1251 return 0; 1250 return 0;