1
1

pml/ob1: fixed exit from get_frag_fail when falling back on btl_put

In the case the btl_get fails Ob1 tries to fallback on btl_put first but
the return code was ignored. So the code fell back on both btl_put and
btl_send.

Signed-off-by: Brelle Emmanuel <emmanuel.brelle@atos.net>
Этот коммит содержится в:
Brelle Emmanuel 2019-04-01 18:07:20 +02:00
родитель 76516bc70c
Коммит 9c689f2225

Просмотреть файл

@ -336,7 +336,9 @@ static int mca_pml_ob1_recv_request_get_frag_failed (mca_pml_ob1_rdma_frag_t *fr
if (OMPI_ERR_NOT_AVAILABLE == rc) { if (OMPI_ERR_NOT_AVAILABLE == rc) {
/* get isn't supported for this transfer. tell peer to fallback on put */ /* get isn't supported for this transfer. tell peer to fallback on put */
rc = mca_pml_ob1_recv_request_put_frag (frag); rc = mca_pml_ob1_recv_request_put_frag (frag);
if (OMPI_ERR_OUT_OF_RESOURCE == rc) { if (OMPI_SUCCESS == rc){
return OMPI_SUCCESS;
} else if (OMPI_ERR_OUT_OF_RESOURCE == rc) {
OPAL_THREAD_LOCK(&mca_pml_ob1.lock); OPAL_THREAD_LOCK(&mca_pml_ob1.lock);
opal_list_append (&mca_pml_ob1.rdma_pending, (opal_list_item_t*)frag); opal_list_append (&mca_pml_ob1.rdma_pending, (opal_list_item_t*)frag);
OPAL_THREAD_UNLOCK(&mca_pml_ob1.lock); OPAL_THREAD_UNLOCK(&mca_pml_ob1.lock);