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) |