diff options
author | Quincey Koziol <koziol@lbl.gov> | 2017-03-13 19:04:33 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@lbl.gov> | 2017-03-13 19:04:33 (GMT) |
commit | 847d675f2743ec420ef6c9efdd6e52ae93b4fe44 (patch) | |
tree | 3e74669322711c4ea14f8fd80ecf14da984c6212 /src/H5MF.c | |
parent | 56e5b4ed05fb3bad51c226ec5b567871a45e0bce (diff) | |
parent | 4fad103187db9095afc8eab90b5f5544feb1d19b (diff) | |
download | hdf5-847d675f2743ec420ef6c9efdd6e52ae93b4fe44.zip hdf5-847d675f2743ec420ef6c9efdd6e52ae93b4fe44.tar.gz hdf5-847d675f2743ec420ef6c9efdd6e52ae93b4fe44.tar.bz2 |
Merge pull request #333 in HDFFV/hdf5 from merge_page_buffering_07 to develop
* commit '4fad103187db9095afc8eab90b5f5544feb1d19b':
Bring changes to I/O parameters from page_buffering branch.
Merge in reentrency changes to "make space in cache" from page_buffering branch.
Minor cleanups and bring over "prefetched dirty" fixes for entries loaded from a cache image.
Remove some usage of "prefetched_dirty" flag (which hasn't been merged from the page_buffering branch yet. Also, bring over improvements to flush candidate entries for parallel code.
Align with incoming page buffering changes: minor cleanups, centralize removing entries from collective metadata read list
Diffstat (limited to 'src/H5MF.c')
-rw-r--r-- | src/H5MF.c | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -645,7 +645,7 @@ herr_t H5MF_xfree(H5F_t *f, H5FD_mem_t alloc_type, hid_t dxpl_id, haddr_t addr, hsize_t size) { - H5F_io_info_t fio_info; /* I/O info for operation */ + H5F_io_info2_t fio_info; /* I/O info for operation */ H5MF_free_section_t *node = NULL; /* Free space section pointer */ H5MF_sect_ud_t udata; /* User data for callback */ H5P_genplist_t *dxpl = NULL; /* DXPL for setting ring */ @@ -688,8 +688,18 @@ HDfprintf(stderr, "%s: fs_type = %u\n", FUNC, (unsigned)fs_type); /* Set up I/O info for operation */ fio_info.f = f; - if(NULL == (fio_info.dxpl = (H5P_genplist_t *)H5I_object(dxpl_id))) - HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list") + if(H5FD_MEM_DRAW == alloc_type) { + if(NULL == (fio_info.meta_dxpl = (H5P_genplist_t *)H5I_object(H5AC_ind_read_dxpl_id))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list") + if(NULL == (fio_info.raw_dxpl = (H5P_genplist_t *)H5I_object(dxpl_id))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list") + } /* end if */ + else { + if(NULL == (fio_info.meta_dxpl = (H5P_genplist_t *)H5I_object(dxpl_id))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list") + if(NULL == (fio_info.raw_dxpl = (H5P_genplist_t *)H5I_object(H5AC_rawdata_dxpl_id))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "can't get property list") + } /* end else */ /* Check if the space to free intersects with the file's metadata accumulator */ if(H5F__accum_free(&fio_info, alloc_type, addr, size) < 0) |