aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorJens Axboe <axboe@fb.com>2014-06-04 09:11:53 -0600
committerJens Axboe <axboe@fb.com>2014-06-04 09:11:53 -0600
commitf899fed4421d6b098ed6a9d69303c70e590bf2c0 (patch)
tree0a0264c0cd6169aa900f6de1f44fbc0f6c7ddd9d /block
parentblk-mq: handle NULL req return from blk_map_request in single queue mode (diff)
downloadlinux-dev-f899fed4421d6b098ed6a9d69303c70e590bf2c0.tar.xz
linux-dev-f899fed4421d6b098ed6a9d69303c70e590bf2c0.zip
blk-mq: fix regression from commit 624dbe475416
When the code was collapsed to avoid duplication, the recent patch for ensuring that a queue is idled before free was dropped, which was added by commit 19c5d84f14d2. Add back the blk_mq_tag_idle(), to ensure we don't leak a reference to an active queue when it is freed. Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block')
-rw-r--r--block/blk-mq.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 96e6eb638f00..4e8e8cf00815 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -1552,6 +1552,8 @@ static void blk_mq_exit_hw_queues(struct request_queue *q,
if (i == nr_queue)
break;
+ blk_mq_tag_idle(hctx);
+
if (set->ops->exit_hctx)
set->ops->exit_hctx(hctx, i);