Hi, This series do some improvement base on V2, and also fix two memleaks. And V2 import a regression for blktest/block/test/029, this test case will increase and decrease hardware queue count quickly. Memleak 1: __blk_mq_alloc_rq_maps __blk_mq_alloc_rq_map if fail blk_mq_free_rq_map Actually, __blk_mq_alloc_rq_map alloc both map and request, here also need free request. Memleak 2: When driver decrease hardware queue, set->nr_hw_queues will be changed firstly in blk_mq_realloc_tag_set_tags or __blk_mq_update_nr_hw_queues, then blk_mq_realloc_hw_ctxs and blk_mq_map_swqueue, even blk_mq_free_tag_set have no chance to free these hardware queue resource, because they iterate hardware queue by for (i = 0; i < set->nr_hw_queues; i++). Patch1~3: rename some function name, no function change. Patch4: fix first memleak. Patch5: fix prev_nr_hw_queues issue, need be saved before change. Patch6: alloc map and request to fix potential kernel panic. Changes since V2: * rename some functions name and fix memleak when free map and requests * Not free new allocated map and request, they will be relased when tagset gone Changes since V1: * Add fix for potential kernel panic when increase hardware queue Weiping Zhang (7): block: rename __blk_mq_alloc_rq_map block: rename __blk_mq_alloc_rq_maps block: rename blk_mq_alloc_rq_maps block: free both map and request block: save previous hardware queue count before udpate block: refactor __blk_mq_alloc_rq_map_and_requests block: alloc map and request for new hardware queue block/blk-mq.c | 49 ++++++++++++++++++++++++++++++------------ include/linux/blk-mq.h | 1 + 2 files changed, 36 insertions(+), 14 deletions(-) -- 2.18.1