Skip to content

Commit d3a8d38

Browse files
committed
common/ompio: correctly position shared fp in append mode
Fixes a bug reported on the mailing list. ompio did only reposition the individual file pointer when the file was opened in append mode. Set the shared file pointer also to point to the end of the file, similarly to the individual file pointer. Signed-off-by: Edgar Gabriel <[email protected]>
1 parent 0b4648b commit d3a8d38

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

ompi/mca/common/ompio/common_ompio_file_open.c

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* University of Stuttgart. All rights reserved.
1010
* Copyright (c) 2004-2005 The Regents of the University of California.
1111
* All rights reserved.
12-
* Copyright (c) 2008-2016 University of Houston. All rights reserved.
12+
* Copyright (c) 2008-2017 University of Houston. All rights reserved.
1313
* Copyright (c) 2015 Research Organization for Information Science
1414
* and Technology (RIST). All rights reserved.
1515
* Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
@@ -204,10 +204,28 @@ int mca_common_ompio_file_open (ompi_communicator_t *comm,
204204
file pointer of OMPIO to the very end of the file. */
205205
if ( ompio_fh->f_amode & MPI_MODE_APPEND ) {
206206
OMPI_MPI_OFFSET_TYPE current_size;
207+
mca_sharedfp_base_module_t * shared_fp_base_module;
207208

208209
ompio_fh->f_fs->fs_file_get_size( ompio_fh,
209210
&current_size);
210211
mca_common_ompio_set_explicit_offset (ompio_fh, current_size);
212+
if ( true == use_sharedfp ) {
213+
if ( NULL != ompio_fh->f_sharedfp &&
214+
(!mca_io_ompio_sharedfp_lazy_open ||
215+
!strcmp (ompio_fh->f_sharedfp_component->mca_component_name,
216+
"addproc") )) {
217+
218+
shared_fp_base_module = ompio_fh->f_sharedfp;
219+
ret = shared_fp_base_module->sharedfp_seek(ompio_fh,current_size, MPI_SEEK_SET);
220+
}
221+
else {
222+
opal_output(1, "mca_common_ompio_file_open: Could not adjust position of "
223+
"shared file pointer whith MPI_MODE_APPEND\n");
224+
ret = MPI_ERR_OTHER;
225+
goto fn_fail;
226+
}
227+
}
228+
211229
}
212230

213231

0 commit comments

Comments
 (0)