From: Israel Rukshin Date: Mon, 13 Nov 2017 12:29:40 +0000 (+0000) Subject: nvmet: fix error flow in nvmet_alloc_ctrl() X-Git-Tag: v4.19~1665^2~3^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=eca19dc1d84d924544dda0c8d2fd4bb4131affeb;p=platform%2Fkernel%2Flinux-rpi.git nvmet: fix error flow in nvmet_alloc_ctrl() Remove the allocated id on error. Signed-off-by: Israel Rukshin Reviewed-by: Max Gurtovoy Signed-off-by: Christoph Hellwig --- diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c index b54748a..07eb45d 100644 --- a/drivers/nvme/target/core.c +++ b/drivers/nvme/target/core.c @@ -830,7 +830,7 @@ u16 nvmet_alloc_ctrl(const char *subsysnqn, const char *hostnqn, /* Don't accept keep-alive timeout for discovery controllers */ if (kato) { status = NVME_SC_INVALID_FIELD | NVME_SC_DNR; - goto out_free_sqs; + goto out_remove_ida; } /* @@ -860,6 +860,8 @@ u16 nvmet_alloc_ctrl(const char *subsysnqn, const char *hostnqn, *ctrlp = ctrl; return 0; +out_remove_ida: + ida_simple_remove(&cntlid_ida, ctrl->cntlid); out_free_sqs: kfree(ctrl->sqs); out_free_cqs: