summaryrefslogtreecommitdiffstats
path: root/src/H5EA.c
diff options
context:
space:
mode:
authorDana Robinson <derobins@hdfgroup.org>2016-12-07 22:21:07 (GMT)
committerDana Robinson <derobins@hdfgroup.org>2016-12-07 22:21:07 (GMT)
commit16a5c7c8f309042c7bb3a40cdb4c60f5b2c587c2 (patch)
tree5d306581d541a99f19d269e1d5a3425527a8a43b /src/H5EA.c
parentf3dfc133cc68a8dfc285ae9e7e9cf85216bb3dcf (diff)
parentfeaaae4897d4c2d9f83a2f93224123a4c5e009c7 (diff)
downloadhdf5-16a5c7c8f309042c7bb3a40cdb4c60f5b2c587c2.zip
hdf5-16a5c7c8f309042c7bb3a40cdb4c60f5b2c587c2.tar.gz
hdf5-16a5c7c8f309042c7bb3a40cdb4c60f5b2c587c2.tar.bz2
Merge branch 'develop' into eoc_h5fs_fix
Diffstat (limited to 'src/H5EA.c')
-rw-r--r--src/H5EA.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/src/H5EA.c b/src/H5EA.c
index 9c3f3e7..e35a4ed 100644
--- a/src/H5EA.c
+++ b/src/H5EA.c
@@ -795,7 +795,7 @@ END_FUNC(PRIV) /* end H5EA_get() */
*/
BEGIN_FUNC(PRIV, ERR,
herr_t, SUCCEED, FAIL,
-H5EA_depend(H5AC_info_t *parent_entry, H5EA_t *ea))
+H5EA_depend(H5EA_t *ea, hid_t dxpl_id, H5AC_proxy_entry_t *parent))
/* Local variables */
H5EA_hdr_t *hdr = ea->hdr; /* Header for EA */
@@ -805,13 +805,25 @@ H5EA_depend(H5AC_info_t *parent_entry, H5EA_t *ea))
*/
HDassert(ea);
HDassert(hdr);
+ HDassert(parent);
- /* Set the shared array header's file context for this operation */
- hdr->f = ea->f;
+ /*
+ * Check to see if a flush dependency between the extensible array
+ * and another data structure in the file has already been set up.
+ * If it hasn't, do so now.
+ */
+ if(NULL == hdr->parent) {
+ /* Sanity check */
+ HDassert(hdr->top_proxy);
- /* Set up flush dependency between parent entry and extensible array header */
- if(H5EA__create_flush_depend(parent_entry, (H5AC_info_t *)hdr) < 0)
- H5E_THROW(H5E_CANTDEPEND, "unable to create flush dependency on file metadata")
+ /* Set the shared array header's file context for this operation */
+ hdr->f = ea->f;
+
+ /* Add the extensible array as a child of the parent (proxy) */
+ if(H5AC_proxy_entry_add_child(parent, hdr->f, dxpl_id, hdr->top_proxy) < 0)
+ H5E_THROW(H5E_CANTSET, "unable to add extensible array as child of proxy")
+ hdr->parent = parent;
+ } /* end if */
CATCH