summaryrefslogtreecommitdiffstats
path: root/src/H5C.c
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2016-02-07 16:38:55 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2016-02-07 16:38:55 (GMT)
commit0461830ee3a7eea419fbb6629c47e40c27aaf6f8 (patch)
treec4955c2febb9606bb68f803276b79503ba3f7a00 /src/H5C.c
parentc3f08947c1fbca8f6ccd87ca35f0f23b6209b129 (diff)
parent48bebcc39ef565796356c159d16f09bfb0efba4d (diff)
downloadhdf5-0461830ee3a7eea419fbb6629c47e40c27aaf6f8.zip
hdf5-0461830ee3a7eea419fbb6629c47e40c27aaf6f8.tar.gz
hdf5-0461830ee3a7eea419fbb6629c47e40c27aaf6f8.tar.bz2
[svn-r29059] merge from trunk.
Diffstat (limited to 'src/H5C.c')
-rw-r--r--src/H5C.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/H5C.c b/src/H5C.c
index 01486f2..100fbe0 100644
--- a/src/H5C.c
+++ b/src/H5C.c
@@ -7720,6 +7720,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 */
@@ -8213,6 +8214,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.
*
@@ -8324,7 +8329,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: