summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2016-02-25 03:46:17 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2016-02-25 03:46:17 (GMT)
commit9dff3541bb856810b0048844e80a3008faa16e50 (patch)
tree49a704dc4ae31e402325f0af55cd08de99613f0a
parent1180666bf8600c7520e4e21d864eed36e6aa4418 (diff)
downloadhdf5-9dff3541bb856810b0048844e80a3008faa16e50.zip
hdf5-9dff3541bb856810b0048844e80a3008faa16e50.tar.gz
hdf5-9dff3541bb856810b0048844e80a3008faa16e50.tar.bz2
[svn-r29208] Merge of r29032 from trunk
Tested on: 64-bit Ubuntu 15.10 (Linux 4.2.0 x86_64) gcc 5.2.1 autotools serial w/ Fortran & C++ autotools parallel (MPICH 3.1.4) w/ Fortran
-rw-r--r--src/H5C.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/H5C.c b/src/H5C.c
index f5503ef..fe14bd1 100644
--- a/src/H5C.c
+++ b/src/H5C.c
@@ -7893,6 +7893,7 @@ H5C__flush_single_entry(const H5F_t *f, hid_t dxpl_id, H5C_cache_entry_t *entry_
hbool_t was_dirty;
haddr_t new_addr = HADDR_UNDEF;
haddr_t old_addr = HADDR_UNDEF;
+ haddr_t entry_addr = HADDR_UNDEF;
size_t new_len = 0;
size_t new_compressed_len = 0;
herr_t ret_value = SUCCEED; /* Return value */
@@ -8426,6 +8427,10 @@ H5C__flush_single_entry(const H5F_t *f, hid_t dxpl_id, H5C_cache_entry_t *entry_
/* reset the flush_in progress flag */
entry_ptr->flush_in_progress = FALSE;
+ /* capture the cache entry address for the log_flush call at the
+ end before the entry_ptr gets freed */
+ entry_addr = entry_ptr->addr;
+
/* Internal cache data structures should now be up to date, and
* consistant with the status of the entry.
*
@@ -8537,7 +8542,7 @@ H5C__flush_single_entry(const H5F_t *f, hid_t dxpl_id, H5C_cache_entry_t *entry_
} /* if (destroy) */
if(cache_ptr->log_flush)
- if((cache_ptr->log_flush)(cache_ptr, entry_ptr->addr, was_dirty, flags) < 0)
+ if((cache_ptr->log_flush)(cache_ptr, entry_addr, was_dirty, flags) < 0)
HGOTO_ERROR(H5E_CACHE, H5E_CANTFLUSH, FAIL, "log_flush callback failed.")
done: