int crush_bucket_remove_item(struct crush_map *map, struct crush_bucket *b, int item) { switch (b->alg) { case CRUSH_BUCKET_UNIFORM: return crush_remove_uniform_bucket_item((struct crush_bucket_uniform *)b, item); case CRUSH_BUCKET_LIST: return crush_remove_list_bucket_item((struct crush_bucket_list *)b, item); case CRUSH_BUCKET_TREE: return crush_remove_tree_bucket_item((struct crush_bucket_tree *)b, item); case CRUSH_BUCKET_STRAW: return crush_remove_straw_bucket_item(map, (struct crush_bucket_straw *)b, item); case CRUSH_BUCKET_STRAW2: return crush_remove_straw2_bucket_item(map, (struct crush_bucket_straw2 *)b, item); default: return -1; } }
int crush_bucket_remove_item(struct crush_bucket *b, int item) { /* invalidate perm cache */ b->perm_n = 0; switch (b->alg) { case CRUSH_BUCKET_UNIFORM: return crush_remove_uniform_bucket_item((struct crush_bucket_uniform *)b, item); case CRUSH_BUCKET_LIST: return crush_remove_list_bucket_item((struct crush_bucket_list *)b, item); case CRUSH_BUCKET_TREE: return crush_remove_tree_bucket_item((struct crush_bucket_tree *)b, item); case CRUSH_BUCKET_STRAW: return crush_remove_straw_bucket_item((struct crush_bucket_straw *)b, item); default: return -1; } }