[PATCH] nvme-fc: restart admin queue if the caller needs to restart queue

James Smart jsmart2021 at gmail.com
Wed Jul 27 10:00:10 PDT 2022


On 7/20/2022 5:33 PM, Ming Lei wrote:
> Without restarting admin queue in __nvme_fc_abort_outstanding_ios(),
> it leaves controller not capable of handling admin pt request, and
> causes io hang.
> 
> Fixes it by restarting admin queue if the caller of __nvme_fc_abort_outstanding_ios
> requires to restart queue.
> 
> Tested-by: Ewan D. Milne <emilne at redhat.com>
> Signed-off-by: Ming Lei <ming.lei at redhat.com>
> ---
>   drivers/nvme/host/fc.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
> index 9987797620b6..8d14df8eeab8 100644
> --- a/drivers/nvme/host/fc.c
> +++ b/drivers/nvme/host/fc.c
> @@ -2533,6 +2533,8 @@ __nvme_fc_abort_outstanding_ios(struct nvme_fc_ctrl *ctrl, bool start_queues)
>   	blk_mq_tagset_busy_iter(&ctrl->admin_tag_set,
>   				nvme_fc_terminate_exchange, &ctrl->ctrl);
>   	blk_mq_tagset_wait_completed_request(&ctrl->admin_tag_set);
> +	if (start_queues)
> +		nvme_start_admin_queue(&ctrl->ctrl);
>   }
>   
>   static void

Looks correct.

Reviewed-by: James Smart <jsmart2021 at gmail.com>

-- james




More information about the Linux-nvme mailing list