diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2016-11-12 22:01:30 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2016-11-12 22:01:30 (GMT) |
commit | d4591ff54d9319346f49a3bc67431f0fa26a8d65 (patch) | |
tree | c73146c1bd6bdd942c462b4cf09e02768b687a78 /src/H5EAcache.c | |
parent | d183e9a1a2eadf768996f5cc41d67aa2685a2363 (diff) | |
download | hdf5-d4591ff54d9319346f49a3bc67431f0fa26a8d65.zip hdf5-d4591ff54d9319346f49a3bc67431f0fa26a8d65.tar.gz hdf5-d4591ff54d9319346f49a3bc67431f0fa26a8d65.tar.bz2 |
Bring over new 'notify' metadata cache client callback actions for when an
entry is cleaned / dirtied or its [flush dependency] child entry is cleaned /
dirtied.
Diffstat (limited to 'src/H5EAcache.c')
-rw-r--r-- | src/H5EAcache.c | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/src/H5EAcache.c b/src/H5EAcache.c index 9224916..ea8bd0e 100644 --- a/src/H5EAcache.c +++ b/src/H5EAcache.c @@ -824,9 +824,13 @@ H5EA__cache_iblock_notify(H5AC_notify_action_t action, void *_thing)) H5E_THROW(H5E_CANTDEPEND, "unable to create flush dependency between index block and header, address = %llu", (unsigned long long)iblock->addr) break; - case H5AC_NOTIFY_ACTION_AFTER_FLUSH: - /* do nothing */ - break; + case H5AC_NOTIFY_ACTION_AFTER_FLUSH: + case H5AC_NOTIFY_ACTION_ENTRY_DIRTIED: + case H5AC_NOTIFY_ACTION_ENTRY_CLEANED: + case H5AC_NOTIFY_ACTION_CHILD_DIRTIED: + case H5AC_NOTIFY_ACTION_CHILD_CLEANED: + /* do nothing */ + break; case H5AC_NOTIFY_ACTION_BEFORE_EVICT: /* Destroy flush dependency on extensible array header */ @@ -1178,14 +1182,14 @@ H5EA__cache_sblock_notify(H5AC_notify_action_t action, void *_thing)) H5E_THROW(H5E_CANTDEPEND, "unable to create flush dependency between super block and index block, address = %llu", (unsigned long long)sblock->addr) break; - case H5AC_NOTIFY_ACTION_AFTER_FLUSH: + case H5AC_NOTIFY_ACTION_AFTER_FLUSH: /* Destroy flush dependency on extensible array header, if set */ if(sblock->has_hdr_depend) { if(H5EA__destroy_flush_depend((H5AC_info_t *)sblock->hdr, (H5AC_info_t *)sblock) < 0) H5E_THROW(H5E_CANTUNDEPEND, "unable to destroy flush dependency between super block and header, address = %llu", (unsigned long long)sblock->addr) sblock->has_hdr_depend = FALSE; } /* end if */ - break; + break; case H5AC_NOTIFY_ACTION_BEFORE_EVICT: /* Destroy flush dependency on index block */ @@ -1200,6 +1204,13 @@ H5EA__cache_sblock_notify(H5AC_notify_action_t action, void *_thing)) } /* end if */ break; + case H5AC_NOTIFY_ACTION_ENTRY_DIRTIED: + case H5AC_NOTIFY_ACTION_ENTRY_CLEANED: + case H5AC_NOTIFY_ACTION_CHILD_DIRTIED: + case H5AC_NOTIFY_ACTION_CHILD_CLEANED: + /* do nothing */ + break; + default: H5E_THROW(H5E_BADVALUE, "unknown action from metadata cache") } /* end switch */ @@ -1545,14 +1556,14 @@ H5EA__cache_dblock_notify(H5AC_notify_action_t action, void *_thing)) H5E_THROW(H5E_CANTDEPEND, "unable to create flush dependency between data block and parent, address = %llu", (unsigned long long)dblock->addr) break; - case H5AC_NOTIFY_ACTION_AFTER_FLUSH: + case H5AC_NOTIFY_ACTION_AFTER_FLUSH: /* Destroy flush dependency on extensible array header, if set */ if(dblock->has_hdr_depend) { if(H5EA__destroy_flush_depend((H5AC_info_t *)dblock->hdr, (H5AC_info_t *)dblock) < 0) H5E_THROW(H5E_CANTUNDEPEND, "unable to destroy flush dependency between direct block and header, address = %llu", (unsigned long long)dblock->addr) dblock->has_hdr_depend = FALSE; } /* end if */ - break; + break; case H5AC_NOTIFY_ACTION_BEFORE_EVICT: /* Destroy flush dependency on parent */ @@ -1562,11 +1573,18 @@ H5EA__cache_dblock_notify(H5AC_notify_action_t action, void *_thing)) /* Destroy flush dependency on extensible array header, if set */ if(dblock->has_hdr_depend) { if(H5EA__destroy_flush_depend((H5AC_info_t *)dblock->hdr, (H5AC_info_t *)dblock) < 0) - H5E_THROW(H5E_CANTUNDEPEND, "unable to destroy flush dependency between direct block and header, address = %llu", (unsigned long long)dblock->addr) + H5E_THROW(H5E_CANTUNDEPEND, "unable to destroy flush dependency between data block and header, address = %llu", (unsigned long long)dblock->addr) dblock->has_hdr_depend = FALSE; } /* end if */ break; + case H5AC_NOTIFY_ACTION_ENTRY_DIRTIED: + case H5AC_NOTIFY_ACTION_ENTRY_CLEANED: + case H5AC_NOTIFY_ACTION_CHILD_DIRTIED: + case H5AC_NOTIFY_ACTION_CHILD_CLEANED: + /* do nothing */ + break; + default: H5E_THROW(H5E_BADVALUE, "unknown action from metadata cache") } /* end switch */ @@ -1879,14 +1897,14 @@ H5EA__cache_dblk_page_notify(H5AC_notify_action_t action, void *_thing)) H5E_THROW(H5E_CANTDEPEND, "unable to create flush dependency between data block page and parent, address = %llu", (unsigned long long)dblk_page->addr) break; - case H5AC_NOTIFY_ACTION_AFTER_FLUSH: + case H5AC_NOTIFY_ACTION_AFTER_FLUSH: /* Destroy flush dependency on extensible array header, if set */ if(dblk_page->has_hdr_depend) { if(H5EA__destroy_flush_depend((H5AC_info_t *)dblk_page->hdr, (H5AC_info_t *)dblk_page) < 0) H5E_THROW(H5E_CANTUNDEPEND, "unable to destroy flush dependency between data block page and header, address = %llu", (unsigned long long)dblk_page->addr) dblk_page->has_hdr_depend = FALSE; } /* end if */ - break; + break; case H5AC_NOTIFY_ACTION_BEFORE_EVICT: /* Destroy flush dependency on parent */ @@ -1901,6 +1919,13 @@ H5EA__cache_dblk_page_notify(H5AC_notify_action_t action, void *_thing)) } /* end if */ break; + case H5AC_NOTIFY_ACTION_ENTRY_DIRTIED: + case H5AC_NOTIFY_ACTION_ENTRY_CLEANED: + case H5AC_NOTIFY_ACTION_CHILD_DIRTIED: + case H5AC_NOTIFY_ACTION_CHILD_CLEANED: + /* do nothing */ + break; + default: H5E_THROW(H5E_BADVALUE, "unknown action from metadata cache") } /* end switch */ |