nvme-loop: don't put ctrl on nvme_init_ctrl error
authorChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Wed, 30 Sep 2020 04:24:17 +0000 (21:24 -0700)
committerChristoph Hellwig <hch@lst.de>
Wed, 7 Oct 2020 05:56:16 +0000 (07:56 +0200)
commit1401fcc4e3da97c44dcc7cbf538c07e24768d791
tree6ff578812f352c2567d3c9c261ddcbe7f6020695
parent103fbf8e4020845e4fcf63819288cedb092a3c91
nvme-loop: don't put ctrl on nvme_init_ctrl error

The function nvme_init_ctrl() gets the ctrl reference & when it fails it
does put the ctrl reference in the error unwind code.

When creating loop ctrl in nvme_loop_create_ctrl() if nvme_init_ctrl()
returns non zero (i.e. error) value it jumps to the "out_put_ctrl" label
which calls nvme_put_ctrl(), that will lead to douple ctrl put in error
unwind path.

Update nvme_loop_create_ctrl() such that this patch removes the
"out_put_ctrl" label, add a new "out" label after nvme_put_ctrl() in
error unwind path and jump to newly added label when nvme_init_ctrl()
call retuns an error.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/loop.c