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
453 static int crush_choose_firstn(const struct crush_map *map, in crush_choose_firstn() argument
523 if (item >= map->max_devices) { in crush_choose_firstn()
531 itemtype = map->buckets[-1-item]->type; in crush_choose_firstn()
539 (-1-item) >= map->max_buckets) { in crush_choose_firstn()
544 in = map->buckets[-1-item]; in crush_choose_firstn()
566 map, in crush_choose_firstn()
568 map->buckets[-1-item], in crush_choose_firstn()
592 reject = is_out(map, weight, in crush_choose_firstn()
633 if (map->choose_tries && ftotal <= map->choose_total_tries) in crush_choose_firstn()
634 map->choose_tries[ftotal]++; in crush_choose_firstn()
646 static void crush_choose_indep(const struct crush_map *map, in crush_choose_indep() argument
733 if (item >= map->max_devices) { in crush_choose_indep()
744 itemtype = map->buckets[-1-item]->type; in crush_choose_indep()
752 (-1-item) >= map->max_buckets) { in crush_choose_indep()
761 in = map->buckets[-1-item]; in crush_choose_indep()
779 map, in crush_choose_indep()
781 map->buckets[-1-item], in crush_choose_indep()
800 is_out(map, weight, weight_max, item, x)) in crush_choose_indep()
819 if (map->choose_tries && ftotal <= map->choose_total_tries) in crush_choose_indep()
820 map->choose_tries[ftotal]++; in crush_choose_indep()
851 void crush_init_workspace(const struct crush_map *map, void *v) in crush_init_workspace() argument
866 v += map->max_buckets * sizeof(struct crush_work_bucket *); in crush_init_workspace()
867 for (b = 0; b < map->max_buckets; ++b) { in crush_init_workspace()
868 if (!map->buckets[b]) in crush_init_workspace()
872 switch (map->buckets[b]->alg) { in crush_init_workspace()
880 v += map->buckets[b]->size * sizeof(__u32); in crush_init_workspace()
882 BUG_ON(v - (void *)w != map->working_size); in crush_init_workspace()
897 int crush_do_rule(const struct crush_map *map, in crush_do_rule() argument
904 int *a = cwin + map->working_size; in crush_do_rule()
921 int choose_tries = map->choose_total_tries + 1; in crush_do_rule()
927 int choose_local_retries = map->choose_local_tries; in crush_do_rule()
928 int choose_local_fallback_retries = map->choose_local_fallback_tries; in crush_do_rule()
930 int vary_r = map->chooseleaf_vary_r; in crush_do_rule()
931 int stable = map->chooseleaf_stable; in crush_do_rule()
933 if ((__u32)ruleno >= map->max_rules) { in crush_do_rule()
938 rule = map->rules[ruleno]; in crush_do_rule()
948 curstep->arg1 < map->max_devices) || in crush_do_rule()
950 -1-curstep->arg1 < map->max_buckets && in crush_do_rule()
951 map->buckets[-1-curstep->arg1])) { in crush_do_rule()
1018 if (bno < 0 || bno >= map->max_buckets) { in crush_do_rule()
1028 else if (map->chooseleaf_descend_once) in crush_do_rule()
1033 map, in crush_do_rule()
1035 map->buckets[bno], in crush_do_rule()
1055 map, in crush_do_rule()
1057 map->buckets[bno], in crush_do_rule()