[PATCH] nvmet-fcloop: call done callback even when remote port is gone
Yi Zhang
yi.zhang at redhat.com
Tue Sep 2 06:23:32 PDT 2025
On Mon, Sep 1, 2025 at 11:58 PM Daniel Wagner <wagi at kernel.org> wrote:
>
> When the target port is gone, it's not possible to access any of the
> request resources. The function should just silently drop the response.
> The comment is misleading in this regard.
>
> Though it's still necessary to call the driver via the ->done callback
> so the driver is able to release all resources.
>
> Reported-by: Yi Zhang <yi.zhang at redhat.com>
> Closes: https://lore.kernel.org/all/CAHj4cs-OBA0WMt5f7R0dz+rR4HcEz19YLhnyGsj-MRV3jWDsPg@mail.gmail.com/
> Fixes: 84eedced1c5b ("nvmet-fcloop: drop response if targetport is gone")
> Signed-off-by: Daniel Wagner <wagi at kernel.org>
> ---
> drivers/nvme/target/fcloop.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
Verified the kmemleak issue fixed with this patch:
Tested-by: Yi Zhang <yi.zhang at redhat.com>
> diff --git a/drivers/nvme/target/fcloop.c b/drivers/nvme/target/fcloop.c
> index 257b497d515a892a39da82d2f96b3fa3c6e10cdd..5dffcc5becae86c79ef75a123647566b2dfc21f6 100644
> --- a/drivers/nvme/target/fcloop.c
> +++ b/drivers/nvme/target/fcloop.c
> @@ -496,13 +496,15 @@ fcloop_t2h_xmt_ls_rsp(struct nvme_fc_local_port *localport,
> if (!targetport) {
> /*
> * The target port is gone. The target doesn't expect any
> - * response anymore and the ->done call is not valid
> - * because the resources have been freed by
> - * nvmet_fc_free_pending_reqs.
> + * response anymore and thus lsreq can't be accessed anymore.
> *
> * We end up here from delete association exchange:
> * nvmet_fc_xmt_disconnect_assoc sends an async request.
> + *
> + * Return success because this is what LLDDs do; silently
> + * drop the response.
> */
> + lsrsp->done(lsrsp);
> kmem_cache_free(lsreq_cache, tls_req);
> return 0;
> }
>
> ---
> base-commit: b320789d6883cc00ac78ce83bccbfe7ed58afcf0
> change-id: 20250901-nvme-fc-fix-leaks-4a25ca3875ab
>
> Best regards,
> --
> Daniel Wagner <wagi at kernel.org>
>
--
Best Regards,
Yi Zhang
More information about the Linux-nvme
mailing list