Commit f553e760 authored by Gioh Kim's avatar Gioh Kim Committed by Jason Gunthorpe
Browse files

RDMA/rtrs-clt: Missing error from rtrs_rdma_conn_established

When rtrs_rdma_conn_established returns error (non-zero value), the error
value is stored in con->cm_err and it cannot trigger
rtrs_rdma_error_recovery. Finally the error of rtrs_rdma_con_established
will be forgot.

Fixes: 6a98d71d ("RDMA/rtrs: client: main functionality")
Link: https://lore.kernel.org/r/20201023074353.21946-5-jinpu.wang@cloud.ionos.com


Signed-off-by: default avatarGioh Kim <gi-oh.kim@cloud.ionos.com>
Signed-off-by: default avatarJack Wang <jinpu.wang@cloud.ionos.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
parent fcf2959d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1831,8 +1831,8 @@ static int rtrs_clt_rdma_cm_handler(struct rdma_cm_id *cm_id,
		cm_err = rtrs_rdma_route_resolved(con);
		break;
	case RDMA_CM_EVENT_ESTABLISHED:
		con->cm_err = rtrs_rdma_conn_established(con, ev);
		if (likely(!con->cm_err)) {
		cm_err = rtrs_rdma_conn_established(con, ev);
		if (likely(!cm_err)) {
			/*
			 * Report success and wake up. Here we abuse state_wq,
			 * i.e. wake up without state change, but we set cm_err.