OSDN Git Service

block: use blk_free_flush_queue() to free hctx->fq in blk_mq_init_hctx
authorShenghui Wang <shhuiw@foxmail.com>
Mon, 1 Apr 2019 13:40:36 +0000 (21:40 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 2 Apr 2019 14:20:06 +0000 (08:20 -0600)
kfree() can leak the hctx->fq->flush_rq field.

Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Shenghui Wang <shhuiw@foxmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c

index 3ff3d7b..f3b0d33 100644 (file)
@@ -2332,7 +2332,7 @@ static int blk_mq_init_hctx(struct request_queue *q,
        return 0;
 
  free_fq:
-       kfree(hctx->fq);
+       blk_free_flush_queue(hctx->fq);
  exit_hctx:
        if (set->ops->exit_hctx)
                set->ops->exit_hctx(hctx, hctx_idx);