summaryrefslogtreecommitdiffstats
path: root/src/H5HL.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5HL.c')
-rw-r--r--src/H5HL.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/H5HL.c b/src/H5HL.c
index a960c80..9e157b0 100644
--- a/src/H5HL.c
+++ b/src/H5HL.c
@@ -305,6 +305,7 @@ H5HL_load(H5F_t *f, const haddr_t *addr, const void __unused__ *udata1,
* Jul 17 1997
*
* Modifications:
+ * rky 980828 Only p0 writes metadata to disk.
*
*-------------------------------------------------------------------------
*/
@@ -376,6 +377,9 @@ H5HL_flush(H5F_t *f, hbool_t destroy, const haddr_t *addr, H5HL_t *heap)
H5F_addr_inc(&hdr_end_addr, (hsize_t)H5HL_SIZEOF_HDR(f));
if (H5F_addr_eq(&(heap->addr), &hdr_end_addr)) {
/* The header and data are contiguous */
+#ifdef HAVE_PARALLEL
+ H5F_mpio_tas_allsame( f->shared->lf, TRUE ); /* only p0 writes */
+#endif /* HAVE_PARALLEL */
if (H5F_block_write(f, addr,
(hsize_t)(H5HL_SIZEOF_HDR(f)+heap->disk_alloc),
H5D_XFER_DFLT, heap->chunk) < 0) {
@@ -383,11 +387,17 @@ H5HL_flush(H5F_t *f, hbool_t destroy, const haddr_t *addr, H5HL_t *heap)
"unable to write heap header and data to file");
}
} else {
+#ifdef HAVE_PARALLEL
+ H5F_mpio_tas_allsame( f->shared->lf, TRUE ); /* only p0 writes */
+#endif /* HAVE_PARALLEL */
if (H5F_block_write(f, addr, (hsize_t)H5HL_SIZEOF_HDR(f),
H5D_XFER_DFLT, heap->chunk)<0) {
HRETURN_ERROR(H5E_HEAP, H5E_WRITEERROR, FAIL,
"unable to write heap header to file");
}
+#ifdef HAVE_PARALLEL
+ H5F_mpio_tas_allsame( f->shared->lf, TRUE ); /* only p0 writes */
+#endif /* HAVE_PARALLEL */
if (H5F_block_write(f, &(heap->addr), (hsize_t)(heap->disk_alloc),
H5D_XFER_DFLT,
heap->chunk + H5HL_SIZEOF_HDR(f)) < 0) {