diff options
author | Albert Cheng <acheng@hdfgroup.org> | 2000-03-24 02:12:44 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 2000-03-24 02:12:44 (GMT) |
commit | e2c95c478aeb1fbf31b06f6bfcea4b750d414df6 (patch) | |
tree | 115fa55209fb1c04d0c60682050277bc0cc2aaef /src/H5O.c | |
parent | f5111838893288dc6f52e19e62b417b9d9dd85cf (diff) | |
download | hdf5-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.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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, |