summaryrefslogtreecommitdiffstats
path: root/src/H5Olayout.c
diff options
context:
space:
mode:
authorNeil Fortner <nfortne2@hdfgroup.org>2019-03-19 20:38:53 (GMT)
committerNeil Fortner <nfortne2@hdfgroup.org>2019-03-19 20:38:53 (GMT)
commitdf98700e0211a2e7431efb87106f12a1f7272063 (patch)
tree517d5878dea425cfd97f219500876a86d88a69c3 /src/H5Olayout.c
parent285bb9713cd9c18ad15cd851af90ff55746bfdaf (diff)
parenta8443acaa76b79ebe74624af363008f0163a44f8 (diff)
downloadhdf5-df98700e0211a2e7431efb87106f12a1f7272063.zip
hdf5-df98700e0211a2e7431efb87106f12a1f7272063.tar.gz
hdf5-df98700e0211a2e7431efb87106f12a1f7272063.tar.bz2
Merge pull request #1609 in HDFFV/hdf5 from ~NFORTNE2/hdf5_naf:hdf5_1_10 to hdf5_1_10
* commit 'a8443acaa76b79ebe74624af363008f0163a44f8': Fix issue with direct chunk write not updating the "last chunk" index cache. Fix issues involving datasets being "no allocated" when they contain cached raw data.
Diffstat (limited to 'src/H5Olayout.c')
-rw-r--r--src/H5Olayout.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/H5Olayout.c b/src/H5Olayout.c
index d0c7f3e..ba63a16 100644
--- a/src/H5Olayout.c
+++ b/src/H5Olayout.c
@@ -1045,7 +1045,8 @@ H5O__layout_copy_file(H5F_t *file_src, void *mesg_src, H5F_t *file_dst,
layout_dst->storage.u.contig.size = H5S_extent_nelem(udata->src_space_extent) *
H5T_get_size(udata->src_dtype);
- if(H5D__contig_is_space_alloc(&layout_src->storage)) {
+ if(H5D__contig_is_space_alloc(&layout_src->storage)
+ || (cpy_info->shared_fo && H5D__contig_is_data_cached((const H5D_shared_t *)cpy_info->shared_fo))) {
/* copy contiguous raw data */
if(H5D__contig_copy(file_src, &layout_src->storage.u.contig, file_dst, &layout_dst->storage.u.contig, udata->src_dtype, cpy_info) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, NULL, "unable to copy contiguous storage")
@@ -1054,7 +1055,8 @@ H5O__layout_copy_file(H5F_t *file_src, void *mesg_src, H5F_t *file_dst,
break;
case H5D_CHUNKED:
- if(H5D__chunk_is_space_alloc(&layout_src->storage)) {
+ if(H5D__chunk_is_space_alloc(&layout_src->storage)
+ || (cpy_info->shared_fo && H5D__chunk_is_data_cached((const H5D_shared_t *)cpy_info->shared_fo))) {
/* Create chunked layout */
if(H5D__chunk_copy(file_src, &layout_src->storage.u.chunk, &layout_src->u.chunk, file_dst, &layout_dst->storage.u.chunk, udata->src_space_extent, udata->src_dtype, udata->common.src_pline, cpy_info) < 0)
HGOTO_ERROR(H5E_OHDR, H5E_CANTCOPY, NULL, "unable to copy chunked storage")