target crash / host hang with nvme-all.3 branch of nvme-fabrics

Steve Wise swise at opengridcomputing.com
Wed Jun 29 07:11:06 PDT 2016


> This one should be more correct.
> Actually, the rsp was leaked when queue->state is
> NVMET_RDMA_Q_DISCONNECTING. So we should put it back.
> 
> It works for me. Could you help to verify?

works!

> 
> diff --git a/drivers/nvme/target/rdma.c b/drivers/nvme/target/rdma.c
> index 425b55c..ee8b85e 100644
> --- a/drivers/nvme/target/rdma.c
> +++ b/drivers/nvme/target/rdma.c
> @@ -727,6 +727,8 @@ static void nvmet_rdma_recv_done(struct ib_cq *cq, struct
> ib_wc *wc)
>  		spin_lock_irqsave(&queue->state_lock, flags);
>  		if (queue->state == NVMET_RDMA_Q_CONNECTING)
>  			list_add_tail(&rsp->wait_list, &queue->rsp_wait_list);
> +		else
> +			nvmet_rdma_put_rsp(rsp);
>  		spin_unlock_irqrestore(&queue->state_lock, flags);
>  		return;
>  	}
> 





More information about the Linux-nvme mailing list