Lines Matching refs:map
42 int crush_find_rule(const struct crush_map *map, int ruleset, int type, int size) in crush_find_rule() argument
46 for (i = 0; i < map->max_rules; i++) { in crush_find_rule()
47 if (map->rules[i] && in crush_find_rule()
48 map->rules[i]->mask.ruleset == ruleset && in crush_find_rule()
49 map->rules[i]->mask.type == type && in crush_find_rule()
50 map->rules[i]->mask.min_size <= size && in crush_find_rule()
51 map->rules[i]->mask.max_size >= size) in crush_find_rule()
413 static int is_out(const struct crush_map *map, in is_out() argument
449 static int crush_choose_firstn(const struct crush_map *map, in crush_choose_firstn() argument
519 if (item >= map->max_devices) { in crush_choose_firstn()
527 itemtype = map->buckets[-1-item]->type; in crush_choose_firstn()
535 (-1-item) >= map->max_buckets) { in crush_choose_firstn()
540 in = map->buckets[-1-item]; in crush_choose_firstn()
562 map, in crush_choose_firstn()
564 map->buckets[-1-item], in crush_choose_firstn()
588 reject = is_out(map, weight, in crush_choose_firstn()
629 if (map->choose_tries && ftotal <= map->choose_total_tries) in crush_choose_firstn()
630 map->choose_tries[ftotal]++; in crush_choose_firstn()
643 static void crush_choose_indep(const struct crush_map *map, in crush_choose_indep() argument
730 if (item >= map->max_devices) { in crush_choose_indep()
741 itemtype = map->buckets[-1-item]->type; in crush_choose_indep()
749 (-1-item) >= map->max_buckets) { in crush_choose_indep()
758 in = map->buckets[-1-item]; in crush_choose_indep()
776 map, in crush_choose_indep()
778 map->buckets[-1-item], in crush_choose_indep()
797 is_out(map, weight, weight_max, item, x)) in crush_choose_indep()
816 if (map->choose_tries && ftotal <= map->choose_total_tries) in crush_choose_indep()
817 map->choose_tries[ftotal]++; in crush_choose_indep()
848 void crush_init_workspace(const struct crush_map *map, void *v) in crush_init_workspace() argument
863 v += map->max_buckets * sizeof(struct crush_work_bucket *); in crush_init_workspace()
864 for (b = 0; b < map->max_buckets; ++b) { in crush_init_workspace()
865 if (!map->buckets[b]) in crush_init_workspace()
869 switch (map->buckets[b]->alg) { in crush_init_workspace()
877 v += map->buckets[b]->size * sizeof(__u32); in crush_init_workspace()
879 BUG_ON(v - (void *)w != map->working_size); in crush_init_workspace()
894 int crush_do_rule(const struct crush_map *map, in crush_do_rule() argument
901 int *a = cwin + map->working_size; in crush_do_rule()
919 int choose_tries = map->choose_total_tries + 1; in crush_do_rule()
925 int choose_local_retries = map->choose_local_tries; in crush_do_rule()
926 int choose_local_fallback_retries = map->choose_local_fallback_tries; in crush_do_rule()
928 int vary_r = map->chooseleaf_vary_r; in crush_do_rule()
929 int stable = map->chooseleaf_stable; in crush_do_rule()
931 if ((__u32)ruleno >= map->max_rules) { in crush_do_rule()
936 rule = map->rules[ruleno]; in crush_do_rule()
946 curstep->arg1 < map->max_devices) || in crush_do_rule()
948 -1-curstep->arg1 < map->max_buckets && in crush_do_rule()
949 map->buckets[-1-curstep->arg1])) { in crush_do_rule()
1016 if (bno < 0 || bno >= map->max_buckets) { in crush_do_rule()
1026 else if (map->chooseleaf_descend_once) in crush_do_rule()
1031 map, in crush_do_rule()
1033 map->buckets[bno], in crush_do_rule()
1053 map, in crush_do_rule()
1055 map->buckets[bno], in crush_do_rule()