blk-mq: don't leak preempt counter/q_usage_counter when allocating rq failed
authorMing Lei <minlei@redhat.com>
Wed, 2 Aug 2017 00:01:45 +0000 (08:01 +0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 2 Aug 2017 14:23:57 +0000 (08:23 -0600)
commit1ad43c0078b79a76accd0fe64062e47b3430dc6b
tree480939827df51b046781e8d2f16def36f6412e0c
parent46d556e6aaa0ec4dc83648ab1ca3d01dd2fa3ea3
blk-mq: don't leak preempt counter/q_usage_counter when allocating rq failed

When blk_mq_get_request() failed, preempt counter isn't
released, and blk_mq_make_request() doesn't release the counter
too.

This patch fixes the issue, and makes sure that preempt counter
is only held if rq is allocated successfully. The same policy is
applied on .q_usage_counter too.

Signed-off-by: Ming Lei <minlei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c