summaryrefslogtreecommitdiffstats
path: root/src/H5Dint.c
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2019-03-06 22:57:42 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2019-05-07 21:35:17 (GMT)
commit16f94d39078965a2c5977885d4fb112c12f18ad1 (patch)
treecaf06b257d69971017b5cb1a11469c0f2b5a9913 /src/H5Dint.c
parent80ff6db31555d0cebd65cafef6af18843ec02dc5 (diff)
downloadhdf5-16f94d39078965a2c5977885d4fb112c12f18ad1.zip
hdf5-16f94d39078965a2c5977885d4fb112c12f18ad1.tar.gz
hdf5-16f94d39078965a2c5977885d4fb112c12f18ad1.tar.bz2
Fix issue with direct chunk write not updating the "last chunk" index
cache. Fix issues involving datasets being "not allocated" when they contain cached raw data.
Diffstat (limited to 'src/H5Dint.c')
-rw-r--r--src/H5Dint.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/H5Dint.c b/src/H5Dint.c
index c34c9a9..1093e13 100644
--- a/src/H5Dint.c
+++ b/src/H5Dint.c
@@ -2333,7 +2333,8 @@ H5D__set_extent(H5D_t *dset, const hsize_t *size, hid_t dxpl_id)
*-------------------------------------------------------------------------
*/
if(shrink && H5D_CHUNKED == dset->shared->layout.type &&
- (*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage))
+ ((*dset->shared->layout.ops->is_space_alloc)(&dset->shared->layout.storage)
+ || (dset->shared->layout.ops->is_data_cached && (*dset->shared->layout.ops->is_data_cached)(dset->shared))))
/* Remove excess chunks */
if(H5D__chunk_prune_by_extent(dset, dxpl_id, curr_dims) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_WRITEERROR, FAIL, "unable to remove chunks")