net/smc: reduce smc_listen_decline() calls
smc_listen_work() contains already an smc_listen_decline() exit. Use this exit for smc_listen_rdma_finish() problems as well. Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: Karsten Graul <kgraul@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7b2977d083
commit
0c881ada3d
|
@ -1233,27 +1233,17 @@ static int smc_listen_rdma_finish(struct smc_sock *new_smc,
|
|||
if (local_first)
|
||||
smc_link_save_peer_info(link, cclc);
|
||||
|
||||
if (smc_rmb_rtoken_handling(&new_smc->conn, link, cclc)) {
|
||||
reason_code = SMC_CLC_DECL_ERR_RTOK;
|
||||
goto decline;
|
||||
}
|
||||
if (smc_rmb_rtoken_handling(&new_smc->conn, link, cclc))
|
||||
return SMC_CLC_DECL_ERR_RTOK;
|
||||
|
||||
if (local_first) {
|
||||
if (smc_ib_ready_link(link)) {
|
||||
reason_code = SMC_CLC_DECL_ERR_RDYLNK;
|
||||
goto decline;
|
||||
}
|
||||
if (smc_ib_ready_link(link))
|
||||
return SMC_CLC_DECL_ERR_RDYLNK;
|
||||
/* QP confirmation over RoCE fabric */
|
||||
smc_llc_flow_initiate(link->lgr, SMC_LLC_FLOW_ADD_LINK);
|
||||
reason_code = smcr_serv_conf_first_link(new_smc);
|
||||
smc_llc_flow_stop(link->lgr, &link->lgr->llc_flow_lcl);
|
||||
if (reason_code)
|
||||
goto decline;
|
||||
}
|
||||
return 0;
|
||||
|
||||
decline:
|
||||
smc_listen_decline(new_smc, reason_code, local_first);
|
||||
return reason_code;
|
||||
}
|
||||
|
||||
|
@ -1382,9 +1372,9 @@ static void smc_listen_work(struct work_struct *work)
|
|||
if (!ism_supported) {
|
||||
rc = smc_listen_rdma_finish(new_smc, &cclc,
|
||||
ini.first_contact_local);
|
||||
mutex_unlock(&smc_server_lgr_pending);
|
||||
if (rc)
|
||||
return;
|
||||
goto out_unlock;
|
||||
mutex_unlock(&smc_server_lgr_pending);
|
||||
}
|
||||
smc_conn_save_peer_info(new_smc, &cclc);
|
||||
smc_listen_out_connected(new_smc);
|
||||
|
|
Loading…
Reference in New Issue