diff --git a/src/na/na_bmi.c b/src/na/na_bmi.c index de60c5be..5d6a8ecf 100644 --- a/src/na/na_bmi.c +++ b/src/na/na_bmi.c @@ -1126,7 +1126,13 @@ na_bmi_complete(struct na_bmi_op_id *na_bmi_op_id) break; case NA_CB_SEND_UNEXPECTED: case NA_CB_SEND_EXPECTED: + break; case NA_CB_RECV_EXPECTED: + if (callback_info->ret != NA_SUCCESS) + callback_info->info.recv_expected.actual_buf_size = 0; + else + callback_info->info.recv_expected.actual_buf_size = + (size_t) na_bmi_op_id->info.msg.actual_buf_size; break; case NA_CB_PUT: case NA_CB_GET: diff --git a/src/na/na_mpi.c b/src/na/na_mpi.c index 81e577b8..95222731 100644 --- a/src/na/na_mpi.c +++ b/src/na/na_mpi.c @@ -2275,6 +2275,8 @@ na_mpi_complete(struct na_mpi_op_id *na_mpi_op_id) ret = NA_SIZE_ERROR; goto done; } + callback_info->info.recv_expected.actual_buf_size = + na_mpi_op_id->info.recv_expected.actual_size; break; case NA_CB_PUT: /* Transfer is now done so free RMA info */