diff options
-rw-r--r-- | block/blk-core.c | 10 |
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 | } |