summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2009-02-19 23:51:31 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2009-02-19 23:51:31 (GMT)
commit771d1c8a36c454efd1597e8ede088446d25e66c0 (patch)
treee3408bd21b80c288a1722689bc1a62c940cca0b5
parent0e8b7519736c0c1195aba13931e828f667ba04cd (diff)
downloadhdf5-771d1c8a36c454efd1597e8ede088446d25e66c0.zip
hdf5-771d1c8a36c454efd1597e8ede088446d25e66c0.tar.gz
hdf5-771d1c8a36c454efd1597e8ede088446d25e66c0.tar.bz2
[svn-r16499] Description:
Cache chunk info for newly created chunk. Tested on: FreeBSD/32 6.3 (duty) (Tests included in upcoming revise_chunks branch changes)
-rw-r--r--src/H5Dchunk.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/H5Dchunk.c b/src/H5Dchunk.c
index d6bc96b..87aed7b 100644
--- a/src/H5Dchunk.c
+++ b/src/H5Dchunk.c
@@ -176,6 +176,8 @@ H5D_nonexistent_readvv(const H5D_io_info_t *io_info,
/* Helper routines */
static void *H5D_chunk_alloc(size_t size, const H5O_pline_t *pline);
static void *H5D_chunk_xfree(void *chk, const H5O_pline_t *pline);
+static herr_t H5D_chunk_cinfo_cache_update(H5D_chunk_cached_t *last,
+ const H5D_chunk_ud_t *udata);
static herr_t H5D_free_chunk_info(void *item, void *key, void *opdata);
static herr_t H5D_create_chunk_map_single(H5D_chunk_map_t *fm,
const H5D_io_info_t *io_info);
@@ -1692,7 +1694,11 @@ H5D_chunk_write(H5D_io_info_t *io_info, const H5D_type_info_t *type_info,
/* Make sure the address of the chunk is returned. */
if(!H5F_addr_defined(udata.addr))
HGOTO_ERROR(H5E_DATASET, H5E_CANTGET, FAIL, "chunk address isn't defined")
- }
+
+ /* Cache the new chunk information */
+ H5D_chunk_cinfo_cache_update(&io_info->dset->shared->cache.chunk.last, &udata);
+ } /* end if */
+
/* Set up the storage address information for this chunk */
ctg_store.contig.dset_addr = udata.addr;