summaryrefslogtreecommitdiffstats
path: root/src/H5Fio.c
diff options
context:
space:
mode:
authorMike McGreevy <mamcgree@hdfgroup.org>2010-10-15 19:59:07 (GMT)
committerMike McGreevy <mamcgree@hdfgroup.org>2010-10-15 19:59:07 (GMT)
commit1c14d3e96d8e4ab0b504ca98fdd3958c9cc451ea (patch)
tree59c82ace4c848af463f4432c8d46ddad1a4766c0 /src/H5Fio.c
parentd6410ca19539496dcfd614b2c67b7ca6a61835aa (diff)
downloadhdf5-1c14d3e96d8e4ab0b504ca98fdd3958c9cc451ea.zip
hdf5-1c14d3e96d8e4ab0b504ca98fdd3958c9cc451ea.tar.gz
hdf5-1c14d3e96d8e4ab0b504ca98fdd3958c9cc451ea.tar.bz2
[svn-r19618] Purpose:
Bring metadata accumulator fixes and tests into 1.8 Description: Changes consist of addition of tests for H5Faccum.c source code, as well as some fixes that address some discovered bugs in the metadata accumulator on several corner cases. Tested: h5committested
Diffstat (limited to 'src/H5Fio.c')
-rw-r--r--src/H5Fio.c24
1 files changed, 6 insertions, 18 deletions
diff --git a/src/H5Fio.c b/src/H5Fio.c
index 407f950..231c4c9 100644
--- a/src/H5Fio.c
+++ b/src/H5Fio.c
@@ -95,7 +95,6 @@ herr_t
H5F_block_read(const H5F_t *f, H5FD_mem_t type, haddr_t addr, size_t size,
hid_t dxpl_id, void *buf/*out*/)
{
- htri_t accumulated; /* Whether the data was accepted by the metadata accumulator */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5F_block_read, FAIL)
@@ -108,14 +107,9 @@ H5F_block_read(const H5F_t *f, H5FD_mem_t type, haddr_t addr, size_t size,
if(H5F_addr_le(f->shared->tmp_addr, (addr + size)))
HGOTO_ERROR(H5E_IO, H5E_BADRANGE, FAIL, "attempting I/O in temporary file space")
- /* Check if this I/O can be satisfied by the metadata accumulator */
- if((accumulated = H5F_accum_read(f, dxpl_id, type, addr, size, buf)) < 0)
- HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "read from metadata accumulator failed")
- else if(accumulated == FALSE) {
- /* Read the data */
- if(H5FD_read(f->shared->lf, dxpl_id, type, addr, size, buf) < 0)
- HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "driver read request failed")
- } /* end else */
+ /* Pass through metadata accumulator layer */
+ if(H5F_accum_read(f, dxpl_id, type, addr, size, buf) < 0)
+ HGOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "read through metadata accumulator failed")
done:
FUNC_LEAVE_NOAPI(ret_value)
@@ -141,7 +135,6 @@ herr_t
H5F_block_write(const H5F_t *f, H5FD_mem_t type, haddr_t addr, size_t size,
hid_t dxpl_id, const void *buf)
{
- htri_t accumulated; /* Whether the data was accepted by the metadata accumulator */
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5F_block_write, FAIL)
@@ -158,14 +151,9 @@ HDfprintf(stderr, "%s: write to addr = %a, size = %Zu\n", FUNC, addr, size);
if(H5F_addr_le(f->shared->tmp_addr, (addr + size)))
HGOTO_ERROR(H5E_IO, H5E_BADRANGE, FAIL, "attempting I/O in temporary file space")
- /* Check for accumulating metadata */
- if((accumulated = H5F_accum_write(f, dxpl_id, type, addr, size, buf)) < 0)
- HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "write to metadata accumulator failed")
- else if(accumulated == FALSE) {
- /* Write the data */
- if(H5FD_write(f->shared->lf, dxpl_id, type, addr, size, buf) < 0)
- HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "file write failed")
- } /* end else */
+ /* Pass through metadata accumulator layer */
+ if(H5F_accum_write(f, dxpl_id, type, addr, size, buf) < 0)
+ HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "write through metadata accumulator failed")
done:
FUNC_LEAVE_NOAPI(ret_value)