diff options
author | Israel Rukshin <israelr@mellanox.com> | 2017-11-13 07:29:41 -0500 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2018-01-08 05:01:59 -0500 |
commit | 6b1943af3f4329c814ec7a651121746d08e6c9ee (patch) | |
tree | d027ba51b04dce8b4a1520f281b611c087cc5f18 | |
parent | eca19dc1d84d924544dda0c8d2fd4bb4131affeb (diff) |
nvmet: rearrange nvmet_ctrl_free()
Make it symmetric to nvmet_alloc_ctrl().
Signed-off-by: Israel Rukshin <israelr@mellanox.com>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
-rw-r--r-- | drivers/nvme/target/core.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c index 07eb45d32a7a..7282ea8d3b96 100644 --- a/drivers/nvme/target/core.c +++ b/drivers/nvme/target/core.c | |||
@@ -879,21 +879,22 @@ static void nvmet_ctrl_free(struct kref *ref) | |||
879 | struct nvmet_ctrl *ctrl = container_of(ref, struct nvmet_ctrl, ref); | 879 | struct nvmet_ctrl *ctrl = container_of(ref, struct nvmet_ctrl, ref); |
880 | struct nvmet_subsys *subsys = ctrl->subsys; | 880 | struct nvmet_subsys *subsys = ctrl->subsys; |
881 | 881 | ||
882 | nvmet_stop_keep_alive_timer(ctrl); | ||
883 | |||
884 | mutex_lock(&subsys->lock); | 882 | mutex_lock(&subsys->lock); |
885 | list_del(&ctrl->subsys_entry); | 883 | list_del(&ctrl->subsys_entry); |
886 | mutex_unlock(&subsys->lock); | 884 | mutex_unlock(&subsys->lock); |
887 | 885 | ||
886 | nvmet_stop_keep_alive_timer(ctrl); | ||
887 | |||
888 | flush_work(&ctrl->async_event_work); | 888 | flush_work(&ctrl->async_event_work); |
889 | cancel_work_sync(&ctrl->fatal_err_work); | 889 | cancel_work_sync(&ctrl->fatal_err_work); |
890 | 890 | ||
891 | ida_simple_remove(&cntlid_ida, ctrl->cntlid); | 891 | ida_simple_remove(&cntlid_ida, ctrl->cntlid); |
892 | nvmet_subsys_put(subsys); | ||
893 | 892 | ||
894 | kfree(ctrl->sqs); | 893 | kfree(ctrl->sqs); |
895 | kfree(ctrl->cqs); | 894 | kfree(ctrl->cqs); |
896 | kfree(ctrl); | 895 | kfree(ctrl); |
896 | |||
897 | nvmet_subsys_put(subsys); | ||
897 | } | 898 | } |
898 | 899 | ||
899 | void nvmet_ctrl_put(struct nvmet_ctrl *ctrl) | 900 | void nvmet_ctrl_put(struct nvmet_ctrl *ctrl) |