Lines Matching refs:arg_map
232 struct crush_choose_arg_map *arg_map; in alloc_choose_arg_map() local
234 arg_map = kzalloc(sizeof(*arg_map), GFP_NOIO); in alloc_choose_arg_map()
235 if (!arg_map) in alloc_choose_arg_map()
238 RB_CLEAR_NODE(&arg_map->node); in alloc_choose_arg_map()
239 return arg_map; in alloc_choose_arg_map()
242 static void free_choose_arg_map(struct crush_choose_arg_map *arg_map) in free_choose_arg_map() argument
244 if (arg_map) { in free_choose_arg_map()
247 WARN_ON(!RB_EMPTY_NODE(&arg_map->node)); in free_choose_arg_map()
249 for (i = 0; i < arg_map->size; i++) { in free_choose_arg_map()
250 struct crush_choose_arg *arg = &arg_map->args[i]; in free_choose_arg_map()
257 kfree(arg_map->args); in free_choose_arg_map()
258 kfree(arg_map); in free_choose_arg_map()
268 struct crush_choose_arg_map *arg_map = in clear_choose_args() local
272 erase_choose_arg_map(&c->choose_args, arg_map); in clear_choose_args()
273 free_choose_arg_map(arg_map); in clear_choose_args()
352 struct crush_choose_arg_map *arg_map = NULL; in decode_choose_args() local
358 arg_map = alloc_choose_arg_map(); in decode_choose_args()
359 if (!arg_map) { in decode_choose_args()
364 ceph_decode_64_safe(p, end, arg_map->choose_args_index, in decode_choose_args()
366 arg_map->size = c->max_buckets; in decode_choose_args()
367 arg_map->args = kcalloc(arg_map->size, sizeof(*arg_map->args), in decode_choose_args()
369 if (!arg_map->args) { in decode_choose_args()
380 if (bucket_index >= arg_map->size) in decode_choose_args()
383 arg = &arg_map->args[bucket_index]; in decode_choose_args()
393 insert_choose_arg_map(&c->choose_args, arg_map); in decode_choose_args()
401 free_choose_arg_map(arg_map); in decode_choose_args()
2495 struct crush_choose_arg_map *arg_map; in do_crush() local
2501 arg_map = lookup_choose_arg_map(&map->crush->choose_args, in do_crush()
2503 if (!arg_map) in do_crush()
2504 arg_map = lookup_choose_arg_map(&map->crush->choose_args, in do_crush()
2510 arg_map ? arg_map->args : NULL); in do_crush()