summaryrefslogtreecommitdiffstats
path: root/src/H5C.c
diff options
context:
space:
mode:
authormainzer <mainzer#hdfgroup.org>2017-08-15 20:54:34 (GMT)
committermainzer <mainzer#hdfgroup.org>2017-08-15 20:54:34 (GMT)
commit85699e41c26e27fa0259a631a04388790b6e82ae (patch)
tree10d67889cf8f52707faaeb6c05b154b2a3f94044 /src/H5C.c
parentaf3474f05e89ecd13fd3e6a3b1fdf0556286c3f5 (diff)
downloadhdf5-85699e41c26e27fa0259a631a04388790b6e82ae.zip
hdf5-85699e41c26e27fa0259a631a04388790b6e82ae.tar.gz
hdf5-85699e41c26e27fa0259a631a04388790b6e82ae.tar.bz2
Updated H5C__flush_single_entry() in H5C.c to correct
duplicate metadata write bug observed in 1.10.1. Tested parallel/production on jelly parallel/debug & parallel/production on charis (in develop branch)
Diffstat (limited to 'src/H5C.c')
-rw-r--r--src/H5C.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/H5C.c b/src/H5C.c
index e6770ec..371fc90 100644
--- a/src/H5C.c
+++ b/src/H5C.c
@@ -6273,17 +6273,27 @@ H5C__flush_single_entry(H5F_t *f, hid_t dxpl_id, H5C_cache_entry_t *entry_ptr,
HGOTO_ERROR(H5E_CACHE, H5E_CANTINSERT, FAIL, "unable to insert skip list item")
} /* end if */
else
+ {
#endif /* H5_HAVE_PARALLEL */
- if(entry_ptr->prefetched) {
- HDassert(entry_ptr->type->id == H5AC_PREFETCHED_ENTRY_ID);
- mem_type = cache_ptr->class_table_ptr[entry_ptr->prefetch_type_id]->mem_type;
- } /* end if */
- else
- mem_type = entry_ptr->type->mem_type;
+ if(entry_ptr->prefetched) {
+ HDassert(entry_ptr->type->id == H5AC_PREFETCHED_ENTRY_ID);
+ mem_type = cache_ptr->
+ class_table_ptr[entry_ptr->prefetch_type_id]->
+ mem_type;
+ } /* end if */
+ else
+ mem_type = entry_ptr->type->mem_type;
- if(H5F_block_write(f, mem_type, entry_ptr->addr, entry_ptr->size, dxpl_id, entry_ptr->image_ptr) < 0)
- HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "Can't write image to file")
+ if(H5F_block_write(f, mem_type, entry_ptr->addr,
+ entry_ptr->size, dxpl_id,
+ entry_ptr->image_ptr) < 0)
+
+ HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, \
+ "Can't write image to file")
+#ifdef H5_HAVE_PARALLEL
+ }
+#endif /* H5_HAVE_PARALLEL */
} /* end if */
/* if the entry has a notify callback, notify it that we have