blk-mq: fix CPU hotplug handling
authorMing Lei <ming.lei@canonical.com>
Tue, 21 Apr 2015 02:00:20 +0000 (10:00 +0800)
committerJens Axboe <axboe@fb.com>
Thu, 23 Apr 2015 16:27:38 +0000 (10:27 -0600)
commit2a34c0872adf252f23a6fef2d051a169ac796cef
treed820359eae469febd262ebfb87811fec8db215c2
parentf054b56c951bf1731ba7314a4c7f1cc0b2977cc9
blk-mq: fix CPU hotplug handling

hctx->tags has to be set as NULL in case that it is to be unmapped
no matter if set->tags[hctx->queue_num] is NULL or not in blk_mq_map_swqueue()
because shared tags can be freed already from another request queue.

The same situation has to be considered during handling CPU online too.
Unmapped hw queue can be remapped after CPU topo is changed, so we need
to allocate tags for the hw queue in blk_mq_map_swqueue(). Then tags
allocation for hw queue can be removed in hctx cpu online notifier, and it
is reasonable to do that after mapping is updated.

Cc: <stable@vger.kernel.org>
Reported-by: Dongsu Park <dongsu.park@profitbricks.com>
Tested-by: Dongsu Park <dongsu.park@profitbricks.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq.c