diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2012-03-29 16:50:49 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2012-03-29 16:50:49 (GMT) |
commit | bd26865f7d69fed1e926e6a3ec5f8653ae0eb6da (patch) | |
tree | a789868314e2af8477afe93fbd8a9849cffa6d0a /src/H5Dproxy.c | |
parent | 5a722a152a68b27151bb96553b0b9cfbbc5cda4c (diff) | |
download | hdf5-bd26865f7d69fed1e926e6a3ec5f8653ae0eb6da.zip hdf5-bd26865f7d69fed1e926e6a3ec5f8653ae0eb6da.tar.gz hdf5-bd26865f7d69fed1e926e6a3ec5f8653ae0eb6da.tar.bz2 |
[svn-r22187] Purpose: Fix dsets failure on ostrich
Description:
The "support" and "unsupport" chunk index callbacks took H5D_chunk_common_ud_t
udata pointers, which seems reasonable because the udata is only needed to
locate the chunk, and does not need to return anything to the callers. However,
for v1 b-trees, H5D_btree_found must be called in order to locate the chunk, and
this function assumes that the udata is an H5D_chunk_ud_t and writes to fields
that are not in H5D_chunk_common_ud_t. Modified the support and unsupport
callbacks to take H5D_chunk_ud_t.
Note: h5watch still fails
Tested: durandal, ostrich
Diffstat (limited to 'src/H5Dproxy.c')
-rw-r--r-- | src/H5Dproxy.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/H5Dproxy.c b/src/H5Dproxy.c index 7f3a566..3cf0146 100644 --- a/src/H5Dproxy.c +++ b/src/H5Dproxy.c @@ -397,7 +397,7 @@ herr_t H5D_chunk_proxy_remove(const H5D_t *dset, hid_t dxpl_id, H5D_rdcc_ent_t *ent) { H5D_chk_idx_info_t idx_info; /* Chunked index info */ - H5D_chunk_common_ud_t udata; /* User-data for chunk */ + H5D_chunk_ud_t udata; /* User-data for chunk */ H5D_chunk_proxy_t *proxy = NULL; /* Chunk proxy */ herr_t ret_value = SUCCEED; /* Return value */ @@ -422,10 +422,13 @@ HDfprintf(stderr, "%s: ent->proxy_addr = %a\n", FUNC, ent->proxy_addr); idx_info.storage = &(dset->shared->layout.storage.u.chunk); /* Compose user-data for chunk */ - udata.layout = &(dset->shared->layout.u.chunk); - udata.storage = &(dset->shared->layout.storage.u.chunk); - udata.offset = ent->offset; - udata.rdcc = &(dset->shared->cache.chunk); + udata.common.layout = &(dset->shared->layout.u.chunk); + udata.common.storage = &(dset->shared->layout.storage.u.chunk); + udata.common.offset = ent->offset; + udata.common.rdcc = &(dset->shared->cache.chunk); + /* Non-"common" data is not actually needed, except to provide a space to + * store this information if it is to be filled in as a side-effect of the + * unsupport callback (i.e. in H5D_btree_found) */ /* Remove flush dependency between the proxy (as the child) and the * metadata object in the index (as the parent). |