/* * bucket_get_block_exact -- finds exact match memory block */ int bucket_get_block_exact(struct bucket *b, struct memory_block m) { uint64_t key = CHUNK_KEY_PACK(m.zone_id, m.chunk_id, m.block_off, m.size_idx); return ctree_find(b->tree, key) == key ? 0 : ENOMEM; }
/* * bucket_tree_get_block_exact -- (internal) finds exact match memory block */ static int bucket_tree_get_block_exact(struct block_container *bc, struct memory_block m) { uint64_t key = CHUNK_KEY_PACK(m.zone_id, m.chunk_id, m.block_off, m.size_idx); struct block_container_ctree *c = (struct block_container_ctree *)bc; return ctree_find(c->tree, key) == key ? 0 : ENOMEM; }