aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/blk-core.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/block/blk-core.c b/block/blk-core.c
index ce7fbf8d85a6..93eb3e4f88ce 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -480,7 +480,6 @@ void blk_cleanup_queue(struct request_queue *q)
480 /* mark @q DEAD, no new request or merges will be allowed afterwards */ 480 /* mark @q DEAD, no new request or merges will be allowed afterwards */
481 mutex_lock(&q->sysfs_lock); 481 mutex_lock(&q->sysfs_lock);
482 queue_flag_set_unlocked(QUEUE_FLAG_DEAD, q); 482 queue_flag_set_unlocked(QUEUE_FLAG_DEAD, q);
483
484 spin_lock_irq(lock); 483 spin_lock_irq(lock);
485 484
486 /* 485 /*
@@ -498,10 +497,6 @@ void blk_cleanup_queue(struct request_queue *q)
498 queue_flag_set(QUEUE_FLAG_NOMERGES, q); 497 queue_flag_set(QUEUE_FLAG_NOMERGES, q);
499 queue_flag_set(QUEUE_FLAG_NOXMERGES, q); 498 queue_flag_set(QUEUE_FLAG_NOXMERGES, q);
500 queue_flag_set(QUEUE_FLAG_DEAD, q); 499 queue_flag_set(QUEUE_FLAG_DEAD, q);
501
502 if (q->queue_lock != &q->__queue_lock)
503 q->queue_lock = &q->__queue_lock;
504
505 spin_unlock_irq(lock); 500 spin_unlock_irq(lock);
506 mutex_unlock(&q->sysfs_lock); 501 mutex_unlock(&q->sysfs_lock);
507 502
@@ -512,6 +507,11 @@ void blk_cleanup_queue(struct request_queue *q)
512 del_timer_sync(&q->backing_dev_info.laptop_mode_wb_timer); 507 del_timer_sync(&q->backing_dev_info.laptop_mode_wb_timer);
513 blk_sync_queue(q); 508 blk_sync_queue(q);
514 509
510 spin_lock_irq(lock);
511 if (q->queue_lock != &q->__queue_lock)
512 q->queue_lock = &q->__queue_lock;
513 spin_unlock_irq(lock);
514
515 /* @q is and will stay empty, shutdown and put */ 515 /* @q is and will stay empty, shutdown and put */
516 blk_put_queue(q); 516 blk_put_queue(q);
517} 517}