diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2009-12-19 05:40:15 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2009-12-19 05:40:15 (GMT) |
commit | ac446b613161a8bdcb80648a4b32f67ca2c4b04a (patch) | |
tree | 75cc244d1b111896328438c627ac241eb4d6cf94 /src/H5O.c | |
parent | ee27c063666c961d4d27aad0b1c7fff3f9e73426 (diff) | |
parent | de952f36472b1cb66c2021ed37fd8bdfe7e7ba4c (diff) | |
download | hdf5-ac446b613161a8bdcb80648a4b32f67ca2c4b04a.zip hdf5-ac446b613161a8bdcb80648a4b32f67ca2c4b04a.tar.gz hdf5-ac446b613161a8bdcb80648a4b32f67ca2c4b04a.tar.bz2 |
[svn-r18037] Description:
Bring r18035 from merge_metadata_journaling branch to trunk:
More "brush clearing" convergence between metadata_journaling branch
and the trunk.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (smirom) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Mac OS X/32 10.6.2 (amazon) in debug mode
Mac OS X/32 10.6.2 (amazon) w/C++ & FORTRAN, w/threadsafe,
in production mode
Diffstat (limited to 'src/H5O.c')
-rw-r--r-- | src/H5O.c | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -1193,7 +1193,8 @@ H5O_create(H5F_t *f, hid_t dxpl_id, size_t size_hint, hid_t ocpl_id, /* Cache object header */ if(H5AC_set(f, dxpl_id, H5AC_OHDR, oh_addr, oh, H5AC__NO_FLAGS_SET) < 0) - HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, FAIL, "unable to cache object header") + HGOTO_ERROR(H5E_OHDR, H5E_CANTINSERT, FAIL, "unable to cache object header") + oh = NULL; /* Set up object location */ loc->file = f; @@ -1421,7 +1422,7 @@ int H5O_link_oh(H5F_t *f, int adjust, hid_t dxpl_id, H5O_t *oh, unsigned *oh_flags) { haddr_t addr = H5O_OH_GET_ADDR(oh); /* Object header address */ - int ret_value; /* Return value */ + int ret_value; /* Return value */ FUNC_ENTER_NOAPI(H5O_link_oh, FAIL) @@ -1431,7 +1432,11 @@ H5O_link_oh(H5F_t *f, int adjust, hid_t dxpl_id, H5O_t *oh, unsigned *oh_flags) /* Check for too large of an adjustment */ if((unsigned)(-adjust) > oh->nlink) HGOTO_ERROR(H5E_OHDR, H5E_LINKCOUNT, FAIL, "link count would be negative") + + /* Adjust the link count for the object header */ oh->nlink += adjust; + + /* Mark object header as dirty in cache */ *oh_flags |= H5AC__DIRTIED_FLAG; /* Check if the object should be deleted */ @@ -1466,7 +1471,7 @@ H5O_link_oh(H5F_t *f, int adjust, hid_t dxpl_id, H5O_t *oh, unsigned *oh_flags) /* Adjust the link count for the object header */ oh->nlink += adjust; - /* Mark the object header for deletion */ + /* Mark object header as dirty in cache */ *oh_flags |= H5AC__DIRTIED_FLAG; } /* end if */ @@ -1577,8 +1582,8 @@ done: H5O_t * H5O_pin(H5O_loc_t *loc, hid_t dxpl_id) { - H5O_t *oh = NULL; /* Object header */ - H5O_t *ret_value; /* Return value */ + H5O_t *oh = NULL; /* Object header */ + H5O_t *ret_value; /* Return value */ FUNC_ENTER_NOAPI(H5O_pin, NULL) @@ -1759,7 +1764,7 @@ done: *------------------------------------------------------------------------- */ herr_t -H5O_touch(H5O_loc_t *loc, hbool_t force, hid_t dxpl_id) +H5O_touch(const H5O_loc_t *loc, hbool_t force, hid_t dxpl_id) { H5O_t *oh = NULL; /* Object header to modify */ unsigned oh_flags = H5AC__NO_FLAGS_SET; /* Flags for unprotecting object header */ |