1
1

io/ompio: Add barrier to file_close and to file_set_size

This fixes a bug reported on the mailing for ompio.
https://www.open-mpi.org/community/lists/users/2016/05/29333.php
Этот коммит содержится в:
Edgar Gabriel 2016-08-04 11:20:31 -05:00
родитель c2634612d7
Коммит 9c3180160c
2 изменённых файлов: 30 добавлений и 6 удалений

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

@ -231,6 +231,14 @@ int mca_common_ompio_file_close (mca_io_ompio_file_t *ompio_fh)
int delete_flag = 0;
char name[256];
ret = ompio_fh->f_comm->c_coll.coll_barrier ( ompio_fh->f_comm, ompio_fh->f_comm->c_coll.coll_barrier_module);
if ( OMPI_SUCCESS != ret ) {
/* Not sure what to do */
opal_output (1,"mca_common_ompio_file_close: error in Barrier \n");
return ret;
}
if(mca_io_ompio_coll_timing_info){
strcpy (name, "WRITE");
if (!mca_common_ompio_empty_print_queue(ompio_fh->f_coll_write_time)){

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

@ -230,18 +230,34 @@ int mca_io_ompio_file_set_size (ompi_file_t *fh,
tmp = size;
data->ompio_fh.f_comm->c_coll.coll_bcast (&tmp,
1,
OMPI_OFFSET_DATATYPE,
OMPIO_ROOT,
data->ompio_fh.f_comm,
data->ompio_fh.f_comm->c_coll.coll_bcast_module);
ret = data->ompio_fh.f_comm->c_coll.coll_bcast (&tmp,
1,
OMPI_OFFSET_DATATYPE,
OMPIO_ROOT,
data->ompio_fh.f_comm,
data->ompio_fh.f_comm->c_coll.coll_bcast_module);
if ( OMPI_SUCCESS != ret ) {
opal_output(1, ",mca_io_ompio_file_set_size: error in bcast\n");
return ret;
}
if (tmp != size) {
return OMPI_ERROR;
}
ret = data->ompio_fh.f_fs->fs_file_set_size (&data->ompio_fh, size);
if ( OMPI_SUCCESS != ret ) {
opal_output(1, ",mca_io_ompio_file_set_size: error in fs->set_size\n");
return ret;
}
ret = data->ompio_fh.f_comm->c_coll.coll_barrier (data->ompio_fh.f_comm,
data->ompio_fh.f_comm->c_coll.coll_barrier_module);
if ( OMPI_SUCCESS != ret ) {
opal_output(1, ",mca_io_ompio_file_set_size: error in barrier\n");
return ret;
}
return ret;
}