diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2003-03-19 18:58:54 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2003-03-19 18:58:54 (GMT) |
commit | a52914987ebff61d0347172e11520af02a5a6b4f (patch) | |
tree | 2bfce5cf8f4a54dfb07b5e1a6a13c3404237722f /src/H5Fistore.c | |
parent | d317b8b404bea67439bf9dbb8565f5532d69aa1a (diff) | |
download | hdf5-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.c | 10 |
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 { |