summaryrefslogtreecommitdiffstats
path: root/drivers/nvme
diff options
context:
space:
mode:
authorSagi Grimberg <sagi@grimberg.me>2017-03-19 06:26:28 +0200
committerJens Axboe <axboe@fb.com>2017-04-04 09:48:23 -0600
commitd19eef029dad7600b69968036e877cdcf51e860d (patch)
treed84264dfeadb46e21bcbc267e0c897a0ee8bcfb3 /drivers/nvme
parenta56c79cfd3e97706ad5615831c3bab01fb4047c4 (diff)
downloadlinux-0-day-d19eef029dad7600b69968036e877cdcf51e860d.tar.gz
linux-0-day-d19eef029dad7600b69968036e877cdcf51e860d.tar.xz
nvme-loop: fix module_init (theoretical) error path
if nvmf_register_transport happend to fail, we need to nvmet_unregister_transport as well. Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/nvme')
-rw-r--r--drivers/nvme/target/loop.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/nvme/target/loop.c b/drivers/nvme/target/loop.c
index a74cd11e63c61..c95c13898bcb9 100644
--- a/drivers/nvme/target/loop.c
+++ b/drivers/nvme/target/loop.c
@@ -745,7 +745,12 @@ static int __init nvme_loop_init_module(void)
ret = nvmet_register_transport(&nvme_loop_ops);
if (ret)
return ret;
- return nvmf_register_transport(&nvme_loop_transport);
+
+ ret = nvmf_register_transport(&nvme_loop_transport);
+ if (ret)
+ nvmet_unregister_transport(&nvme_loop_ops);
+
+ return ret;
}
static void __exit nvme_loop_cleanup_module(void)