summaryrefslogtreecommitdiffstats
path: root/src/H5O.c
diff options
context:
space:
mode:
authorAlbert Cheng <acheng@hdfgroup.org>2000-03-24 02:12:44 (GMT)
committerAlbert Cheng <acheng@hdfgroup.org>2000-03-24 02:12:44 (GMT)
commite2c95c478aeb1fbf31b06f6bfcea4b750d414df6 (patch)
tree115fa55209fb1c04d0c60682050277bc0cc2aaef /src/H5O.c
parentf5111838893288dc6f52e19e62b417b9d9dd85cf (diff)
downloadhdf5-e2c95c478aeb1fbf31b06f6bfcea4b750d414df6.zip
hdf5-e2c95c478aeb1fbf31b06f6bfcea4b750d414df6.tar.gz
hdf5-e2c95c478aeb1fbf31b06f6bfcea4b750d414df6.tar.bz2
[svn-r2057] Purpose:
Bug fix for parallel mode. Description: H5FD_mpio_tas_allsame was called for all cases, even when MPIO is not used for access. That corrupted the internal file handle structure. Solution: Define a macro, IS_H5FD_MPIO(f), for testing if f is opened with MPIO access. Will call H5FD_mpio_tas_allsame only if this condition is true. Platform tested: O2K, both -64 and -n32 modes.
Diffstat (limited to 'src/H5O.c')
-rw-r--r--src/H5O.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/H5O.c b/src/H5O.c
index afcdb1b..29ff4b9 100644
--- a/src/H5O.c
+++ b/src/H5O.c
@@ -557,7 +557,8 @@ H5O_flush(H5F_t *f, hbool_t destroy, haddr_t addr, H5O_t *oh)
/* write the object header header */
#ifdef H5_HAVE_PARALLEL
- H5FD_mpio_tas_allsame(f->shared->lf, TRUE); /*only p0 will write*/
+ if (IS_H5FD_MPIO(f))
+ H5FD_mpio_tas_allsame(f->shared->lf, TRUE); /*only p0 will write*/
#endif /* H5_HAVE_PARALLEL */
if (H5F_block_write(f, addr, (hsize_t)H5O_SIZEOF_HDR(f),
H5P_DEFAULT, buf) < 0) {
@@ -633,6 +634,7 @@ H5O_flush(H5F_t *f, hbool_t destroy, haddr_t addr, H5O_t *oh)
if (oh->chunk[i].dirty) {
assert(H5F_addr_defined(oh->chunk[i].addr));
#ifdef H5_HAVE_PARALLEL
+ if (IS_H5FD_MPIO(f))
H5FD_mpio_tas_allsame(f->shared->lf, TRUE); /*only p0 write*/
#endif /* H5_HAVE_PARALLEL */
if (H5F_block_write(f, oh->chunk[i].addr,