int crush_bucket_add_item(struct crush_bucket *b, int item, int weight) { /* invalidate perm cache */ b->perm_n = 0; switch (b->alg) { case CRUSH_BUCKET_UNIFORM: return crush_add_uniform_bucket_item((struct crush_bucket_uniform *)b, item, weight); case CRUSH_BUCKET_LIST: return crush_add_list_bucket_item((struct crush_bucket_list *)b, item, weight); case CRUSH_BUCKET_TREE: return crush_add_tree_bucket_item((struct crush_bucket_tree *)b, item, weight); case CRUSH_BUCKET_STRAW: return crush_add_straw_bucket_item((struct crush_bucket_straw *)b, item, weight); default: return -1; } }
int crush_bucket_add_item(struct crush_map *map, struct crush_bucket *b, int item, int weight) { switch (b->alg) { case CRUSH_BUCKET_UNIFORM: return crush_add_uniform_bucket_item((struct crush_bucket_uniform *)b, item, weight); case CRUSH_BUCKET_LIST: return crush_add_list_bucket_item((struct crush_bucket_list *)b, item, weight); case CRUSH_BUCKET_TREE: return crush_add_tree_bucket_item((struct crush_bucket_tree *)b, item, weight); case CRUSH_BUCKET_STRAW: return crush_add_straw_bucket_item(map, (struct crush_bucket_straw *)b, item, weight); case CRUSH_BUCKET_STRAW2: return crush_add_straw2_bucket_item(map, (struct crush_bucket_straw2 *)b, item, weight); default: return -1; } }