nvmet: move ka_work initialization to nvmet_alloc_ctrl
authorAmit Engel <amit.engel@dell.com>
Thu, 22 Apr 2021 12:33:16 +0000 (15:33 +0300)
committerChristoph Hellwig <hch@lst.de>
Thu, 3 Jun 2021 07:29:26 +0000 (10:29 +0300)
Initialize keep-alive work only once, as part of alloc_ctrl
and not each time that nvmet_start_keep_alive_timer is being called

Signed-off-by: Amit Engel <amit.engel@dell.com>
Reviewed-by: Hou Pu <houpu.main@gmail.com>
drivers/nvme/target/core.c

index 1853db3..4ae4bea 100644 (file)
@@ -412,7 +412,6 @@ void nvmet_start_keep_alive_timer(struct nvmet_ctrl *ctrl)
        pr_debug("ctrl %d start keep-alive timer for %d secs\n",
                ctrl->cntlid, ctrl->kato);
 
-       INIT_DELAYED_WORK(&ctrl->ka_work, nvmet_keep_alive_timer);
        schedule_delayed_work(&ctrl->ka_work, ctrl->kato * HZ);
 }
 
@@ -1352,6 +1351,7 @@ u16 nvmet_alloc_ctrl(const char *subsysnqn, const char *hostnqn,
        INIT_LIST_HEAD(&ctrl->async_events);
        INIT_RADIX_TREE(&ctrl->p2p_ns_map, GFP_KERNEL);
        INIT_WORK(&ctrl->fatal_err_work, nvmet_fatal_error_handler);
+       INIT_DELAYED_WORK(&ctrl->ka_work, nvmet_keep_alive_timer);
 
        memcpy(ctrl->subsysnqn, subsysnqn, NVMF_NQN_SIZE);
        memcpy(ctrl->hostnqn, hostnqn, NVMF_NQN_SIZE);