summaryrefslogtreecommitdiffstats
path: root/src/H5Fistore.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2003-03-19 18:58:54 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2003-03-19 18:58:54 (GMT)
commita52914987ebff61d0347172e11520af02a5a6b4f (patch)
tree2bfce5cf8f4a54dfb07b5e1a6a13c3404237722f /src/H5Fistore.c
parentd317b8b404bea67439bf9dbb8565f5532d69aa1a (diff)
downloadhdf5-a52914987ebff61d0347172e11520af02a5a6b4f.zip
hdf5-a52914987ebff61d0347172e11520af02a5a6b4f.tar.gz
hdf5-a52914987ebff61d0347172e11520af02a5a6b4f.tar.bz2
[svn-r6497] Purpose:
Finish code cleanup Description: Wrap up the conversion of H5F_flush's multiple boolean flags into a single bitfield of flags by pushing the flags down into the H5AC_flush and H5F_istore_flush routines. Also, changed the flags from H5_FLUSH_<foo> to H5F_FLUSH_<foo> to be more consistent with rest of library. And reverted the changes to H5FDflush and H5FD_flush routines. Platforms tested: FreeBSD 4.7 (sleipnir) Solaris 5.8 (sol) IRIX64 6.5 (modi4) w/parallel Misc. update:
Diffstat (limited to 'src/H5Fistore.c')
-rw-r--r--src/H5Fistore.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/H5Fistore.c b/src/H5Fistore.c
index cbdd504..6ac8ee3 100644
--- a/src/H5Fistore.c
+++ b/src/H5Fistore.c
@@ -1060,7 +1060,7 @@ H5F_istore_preempt(H5F_t *f, hid_t dxpl_id, H5F_rdcc_ent_t * ent, hbool_t flush)
HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "cannot flush indexed storage buffer");
}
else {
- /* Reset, but do not free or remove from list */
+ /* Don't flush, just free chunk */
ent->layout = H5O_free(H5O_LAYOUT_ID, ent->layout);
ent->pline = H5O_free(H5O_PLINE_ID, ent->pline);
if(ent->chunk != NULL)
@@ -1110,7 +1110,7 @@ done:
*-------------------------------------------------------------------------
*/
herr_t
-H5F_istore_flush (H5F_t *f, hid_t dxpl_id, hbool_t preempt)
+H5F_istore_flush (H5F_t *f, hid_t dxpl_id, unsigned flags)
{
H5F_rdcc_t *rdcc = &(f->shared->rdcc);
int nerrors=0;
@@ -1121,7 +1121,11 @@ H5F_istore_flush (H5F_t *f, hid_t dxpl_id, hbool_t preempt)
for (ent=rdcc->head; ent; ent=next) {
next = ent->next;
- if (preempt) {
+ if ((flags&H5F_FLUSH_CLEAR_ONLY)) {
+ /* Just mark cache entry as clean */
+ ent->dirty = FALSE;
+ } /* end if */
+ else if ((flags&H5F_FLUSH_INVALIDATE)) {
if (H5F_istore_preempt(f, dxpl_id, ent, TRUE )<0)
nerrors++;
} else {