diff options
| -rw-r--r-- | block/blk-mq.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c index cbd2a55d69b8..aefed96369dd 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c | |||
| @@ -160,6 +160,13 @@ void blk_mq_wake_waiters(struct request_queue *q) | |||
| 160 | queue_for_each_hw_ctx(q, hctx, i) | 160 | queue_for_each_hw_ctx(q, hctx, i) |
| 161 | if (blk_mq_hw_queue_mapped(hctx)) | 161 | if (blk_mq_hw_queue_mapped(hctx)) |
| 162 | blk_mq_tag_wakeup_all(hctx->tags, true); | 162 | blk_mq_tag_wakeup_all(hctx->tags, true); |
| 163 | |||
| 164 | /* | ||
| 165 | * If we are called because the queue has now been marked as | ||
| 166 | * dying, we need to ensure that processes currently waiting on | ||
| 167 | * the queue are notified as well. | ||
| 168 | */ | ||
| 169 | wake_up_all(&q->mq_freeze_wq); | ||
| 163 | } | 170 | } |
| 164 | 171 | ||
| 165 | bool blk_mq_can_queue(struct blk_mq_hw_ctx *hctx) | 172 | bool blk_mq_can_queue(struct blk_mq_hw_ctx *hctx) |
