[PATCH 04/10] nvme-fabrics: introduce nvmf_error_recovery API
James Smart
jsmart2021 at gmail.com
Tue Nov 2 16:59:18 PDT 2021
On 10/20/2021 3:38 AM, Max Gurtovoy wrote:
> Error recovery mechanism is duplicated in RDMA and TCP transports. Move
> this logic to common code.
>
> Also update the RDMA/TCP transport drivers to use this API and remove
> the duplicated code.
>
> Reviewed-by: Chaitanya Kulkarni <kch at nvidia.com>
> Reviewed-by: Israel Rukshin <israelr at nvidia.com>
> Reviewed-by: Hannes Reinecke <hare at suse.de>
> Signed-off-by: Max Gurtovoy <mgurtovoy at nvidia.com>
> ---
> drivers/nvme/host/fabrics.c | 10 ++++++++++
> drivers/nvme/host/fabrics.h | 1 +
> drivers/nvme/host/rdma.c | 25 ++++++++-----------------
> drivers/nvme/host/tcp.c | 19 +++++--------------
> 4 files changed, 24 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/nvme/host/fabrics.c b/drivers/nvme/host/fabrics.c
> index 4a1ef67c6fb3..2edd086fa922 100644
> --- a/drivers/nvme/host/fabrics.c
> +++ b/drivers/nvme/host/fabrics.c
> @@ -493,6 +493,16 @@ void nvmf_reconnect_or_remove(struct nvme_ctrl *ctrl)
> }
> EXPORT_SYMBOL_GPL(nvmf_reconnect_or_remove);
>
> +void nvmf_error_recovery(struct nvme_ctrl *ctrl)
> +{
> + if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_RESETTING))
> + return;
> +
> + dev_warn(ctrl->device, "starting error recovery\n");
> + queue_work(nvme_reset_wq, &ctrl->err_work);
> +}
> +EXPORT_SYMBOL_GPL(nvmf_error_recovery);
> +
don't disagree with this - but my comments on patch 3 relate to this. It
should be making a call to nvme_reset_ctlr. no need to have another
place where state is moved to RESETTING.
-- james
More information about the Linux-nvme
mailing list