summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2012-10-23 16:05:06 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2012-10-23 16:05:06 (GMT)
commita2aba62fe028d5b5bf6fafb5d0071d865f502863 (patch)
treef33ce72ddfa0f474dcecd3cc2eedd587e623aa95
parent55d3172d229b29ade3899e065460c93d216d1f7c (diff)
downloadhdf5-a2aba62fe028d5b5bf6fafb5d0071d865f502863.zip
hdf5-a2aba62fe028d5b5bf6fafb5d0071d865f502863.tar.gz
hdf5-a2aba62fe028d5b5bf6fafb5d0071d865f502863.tar.bz2
[svn-r22950] Purpose: Fix testflushrefresh failures
Description: Since the "flush me last" code was introduced, it was no longer possible for the superblock to be flushed to disk without flushing the entire file. This made it impossible to open a file concurrently, even after calling H5Gflush on the root group. The superblock was originally supposed to be flushed every time any object was explicitly flushed with H5*flush. Modified H5C_flush_cache to ignore flush me last flag if the entry is marked for flush (which is done either by a tag for H5*flush or to free up space in cache) and the flush marked entries flag is set. Tested: ummon
-rw-r--r--src/H5C.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/H5C.c b/src/H5C.c
index 7005235..e06dc37 100644
--- a/src/H5C.c
+++ b/src/H5C.c
@@ -1893,9 +1893,10 @@ H5C_flush_cache(H5F_t *f, hid_t primary_dxpl_id, hid_t secondary_dxpl_id, unsign
if ( ( ( ! flush_marked_entries ) ||
( entry_ptr->flush_marker ) ) &&
( ( ! entry_ptr->flush_me_last ) ||
- ( ( entry_ptr->flush_me_last ) &&
- ( cache_ptr->num_last_entries >=
- cache_ptr->slist_len ) ) ) ) {
+ ( cache_ptr->num_last_entries >=
+ cache_ptr->slist_len ) ||
+ ( flush_marked_entries &&
+ entry_ptr->flush_marker ) ) ) {
if ( entry_ptr->is_protected ) {