Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06406d81 authored by Sagi Grimberg's avatar Sagi Grimberg
Browse files

nvmet: cancel fatal error and flush async work before free controller



Make sure they are not running and we can free the controller
safely.

Signed-off-by: default avatarRoy Shterman <roys@lightbitslabs.com>
Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 344770b0
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -816,6 +816,9 @@ static void nvmet_ctrl_free(struct kref *ref)
	list_del(&ctrl->subsys_entry);
	mutex_unlock(&subsys->lock);

	flush_work(&ctrl->async_event_work);
	cancel_work_sync(&ctrl->fatal_err_work);

	ida_simple_remove(&subsys->cntlid_ida, ctrl->cntlid);
	nvmet_subsys_put(subsys);