summaryrefslogtreecommitdiffstats
path: root/src/H5D.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2018-10-26 21:09:06 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2018-10-26 21:09:06 (GMT)
commit171deaa588183b5a3a9d27a5f3f407d398ba53db (patch)
treef71439692ecc5f6a20fa65ce3c1ad94f77450ac5 /src/H5D.c
parent305997501dd4c44cb46adfc0159489ae84c5fad4 (diff)
downloadhdf5-171deaa588183b5a3a9d27a5f3f407d398ba53db.zip
hdf5-171deaa588183b5a3a9d27a5f3f407d398ba53db.tar.gz
hdf5-171deaa588183b5a3a9d27a5f3f407d398ba53db.tar.bz2
Checkpoint progress on stacking VOL plugins - all standalone regression tests
in the 'test' directory appear to be working.
Diffstat (limited to 'src/H5D.c')
-rw-r--r--src/H5D.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/H5D.c b/src/H5D.c
index be3c1e0..2755993 100644
--- a/src/H5D.c
+++ b/src/H5D.c
@@ -1013,6 +1013,7 @@ herr_t
H5Drefresh(hid_t dset_id)
{
H5VL_object_t *vol_obj; /* Dataset for this operation */
+ hbool_t vol_wrapper_set = FALSE; /* Whether the VOL object wrapping context was set up */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(FAIL)
@@ -1026,12 +1027,21 @@ H5Drefresh(hid_t dset_id)
if(H5CX_set_loc(dset_id) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTSET, FAIL, "can't set collective metadata read info")
+ /* Set wrapper info in API context */
+ if(H5VL_set_vol_wrapper(vol_obj->data, vol_obj->plugin) < 0)
+ HGOTO_ERROR(H5E_OHDR, H5E_CANTSET, H5I_INVALID_HID, "can't set VOL wrapper info")
+ vol_wrapper_set = TRUE;
+
/* Refresh the dataset object */
if((ret_value = H5VL_dataset_specific(vol_obj->data, vol_obj->plugin->cls, H5VL_DATASET_REFRESH,
H5P_DATASET_XFER_DEFAULT, H5_REQUEST_NULL, dset_id)) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTLOAD, FAIL, "unable to refresh dataset")
done:
+ /* Reset object wrapping info in API context */
+ if(vol_wrapper_set && H5VL_reset_vol_wrapper() < 0)
+ HDONE_ERROR(H5E_OHDR, H5E_CANTSET, H5I_INVALID_HID, "can't reset VOL wrapper info")
+
FUNC_LEAVE_API(ret_value)
} /* end H5Drefresh() */