summaryrefslogtreecommitdiffstats
path: root/src/H5HL.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/H5HL.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/H5HL.c')
-rw-r--r--src/H5HL.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/H5HL.c b/src/H5HL.c
index 9dec1eb..340387f 100644
--- a/src/H5HL.c
+++ b/src/H5HL.c
@@ -380,7 +380,8 @@ H5HL_flush(H5F_t *f, hbool_t destroy, haddr_t addr, H5HL_t *heap)
if (H5F_addr_eq(heap->addr, hdr_end_addr)) {
/* The header and data are contiguous */
#ifdef H5_HAVE_PARALLEL
- H5FD_mpio_tas_allsame( f->shared->lf, TRUE ); /* only p0 writes */
+ if (IS_H5FD_MPIO(f))
+ H5FD_mpio_tas_allsame( f->shared->lf, TRUE ); /* only p0 writes */
#endif /* H5_HAVE_PARALLEL */
if (H5F_block_write(f, addr,
(hsize_t)(H5HL_SIZEOF_HDR(f)+heap->disk_alloc),
@@ -390,7 +391,8 @@ H5HL_flush(H5F_t *f, hbool_t destroy, haddr_t addr, H5HL_t *heap)
}
} else {
#ifdef H5_HAVE_PARALLEL
- H5FD_mpio_tas_allsame( f->shared->lf, TRUE ); /* only p0 writes */
+ if (IS_H5FD_MPIO(f))
+ H5FD_mpio_tas_allsame( f->shared->lf, TRUE ); /* only p0 writes */
#endif /* H5_HAVE_PARALLEL */
if (H5F_block_write(f, addr, (hsize_t)H5HL_SIZEOF_HDR(f),
H5P_DEFAULT, heap->chunk)<0) {
@@ -398,7 +400,8 @@ H5HL_flush(H5F_t *f, hbool_t destroy, haddr_t addr, H5HL_t *heap)
"unable to write heap header to file");
}
#ifdef H5_HAVE_PARALLEL
- H5FD_mpio_tas_allsame( f->shared->lf, TRUE ); /* only p0 writes */
+ if (IS_H5FD_MPIO(f))
+ H5FD_mpio_tas_allsame( f->shared->lf, TRUE ); /* only p0 writes */
#endif /* H5_HAVE_PARALLEL */
if (H5F_block_write(f, heap->addr, (hsize_t)(heap->disk_alloc),
H5P_DEFAULT,