int pvfs2_mmap_ra_cache_flush(PVFS_object_ref refn) { int ret = -1; struct qlist_head *hash_link = NULL; mmap_ra_cache_elem_t *cache_elem = NULL; if (MMAP_RA_CACHE_INITIALIZED()) { gen_mutex_lock(&s_mmap_ra_cache_mutex); hash_link = qhash_search_and_remove(s_key_to_data_table, &refn); if (hash_link) { cache_elem = qhash_entry( hash_link, mmap_ra_cache_elem_t, hash_link); assert(cache_elem); assert(cache_elem->data); gossip_debug(GOSSIP_MMAP_RCACHE_DEBUG, "Flushed mmap ra cache " "element %llu, %d of size %llu\n", llu(cache_elem->refn.handle), cache_elem->refn.fs_id, llu(cache_elem->data_sz)); free(cache_elem->data); free(cache_elem); ret = 0; } gen_mutex_unlock(&s_mmap_ra_cache_mutex); } return ret; }
int id_gen_safe_unregister(BMI_id_gen_t new_id) { int ret = -EINVAL; id_gen_safe_t *id_elem = NULL; struct qlist_head *hash_link = NULL; if (ID_GEN_SAFE_INITIALIZED()) { gen_mutex_lock(&s_id_gen_safe_mutex); hash_link = qhash_search_and_remove( s_id_gen_safe_table, &new_id); if (hash_link) { id_elem = qlist_entry(hash_link, id_gen_safe_t, hash_link); assert(id_elem); id_elem->item = NULL; free(id_elem); ret = 0; } gen_mutex_unlock(&s_id_gen_safe_mutex); } return ret; }