Commit 8b12d47b authored by Sage Weil's avatar Sage Weil

crush: clean up types, const-ness

Move various types from int -> __u32 (or similar), and add const as
appropriate.

This reflects changes that have been present in the userland implementation
for some time.
Reviewed-by: default avatarAlex Elder <elder@inktank.com>
Signed-off-by: default avatarSage Weil <sage@inktank.com>
parent e49bf4c5
...@@ -168,7 +168,7 @@ struct crush_map { ...@@ -168,7 +168,7 @@ struct crush_map {
/* crush.c */ /* crush.c */
extern int crush_get_bucket_item_weight(struct crush_bucket *b, int pos); extern int crush_get_bucket_item_weight(const struct crush_bucket *b, int pos);
extern void crush_calc_parents(struct crush_map *map); extern void crush_calc_parents(struct crush_map *map);
extern void crush_destroy_bucket_uniform(struct crush_bucket_uniform *b); extern void crush_destroy_bucket_uniform(struct crush_bucket_uniform *b);
extern void crush_destroy_bucket_list(struct crush_bucket_list *b); extern void crush_destroy_bucket_list(struct crush_bucket_list *b);
......
...@@ -10,11 +10,11 @@ ...@@ -10,11 +10,11 @@
#include "crush.h" #include "crush.h"
extern int crush_find_rule(struct crush_map *map, int pool, int type, int size); extern int crush_find_rule(const struct crush_map *map, int ruleset, int type, int size);
extern int crush_do_rule(struct crush_map *map, extern int crush_do_rule(const struct crush_map *map,
int ruleno, int ruleno,
int x, int *result, int result_max, int x, int *result, int result_max,
int forcefeed, /* -1 for none */ int forcefeed, /* -1 for none */
__u32 *weights); const __u32 *weights);
#endif #endif
...@@ -26,9 +26,9 @@ const char *crush_bucket_alg_name(int alg) ...@@ -26,9 +26,9 @@ const char *crush_bucket_alg_name(int alg)
* @b: bucket pointer * @b: bucket pointer
* @p: item index in bucket * @p: item index in bucket
*/ */
int crush_get_bucket_item_weight(struct crush_bucket *b, int p) int crush_get_bucket_item_weight(const struct crush_bucket *b, int p)
{ {
if (p >= b->size) if ((__u32)p >= b->size)
return 0; return 0;
switch (b->alg) { switch (b->alg) {
...@@ -124,10 +124,9 @@ void crush_destroy_bucket(struct crush_bucket *b) ...@@ -124,10 +124,9 @@ void crush_destroy_bucket(struct crush_bucket *b)
*/ */
void crush_destroy(struct crush_map *map) void crush_destroy(struct crush_map *map)
{ {
int b;
/* buckets */ /* buckets */
if (map->buckets) { if (map->buckets) {
__s32 b;
for (b = 0; b < map->max_buckets; b++) { for (b = 0; b < map->max_buckets; b++) {
if (map->buckets[b] == NULL) if (map->buckets[b] == NULL)
continue; continue;
...@@ -138,6 +137,7 @@ void crush_destroy(struct crush_map *map) ...@@ -138,6 +137,7 @@ void crush_destroy(struct crush_map *map)
/* rules */ /* rules */
if (map->rules) { if (map->rules) {
__u32 b;
for (b = 0; b < map->max_rules; b++) for (b = 0; b < map->max_rules; b++)
kfree(map->rules[b]); kfree(map->rules[b]);
kfree(map->rules); kfree(map->rules);
......
...@@ -32,9 +32,9 @@ ...@@ -32,9 +32,9 @@
* @type: storage ruleset type (user defined) * @type: storage ruleset type (user defined)
* @size: output set size * @size: output set size
*/ */
int crush_find_rule(struct crush_map *map, int ruleset, int type, int size) int crush_find_rule(const struct crush_map *map, int ruleset, int type, int size)
{ {
int i; __u32 i;
for (i = 0; i < map->max_rules; i++) { for (i = 0; i < map->max_rules; i++) {
if (map->rules[i] && if (map->rules[i] &&
...@@ -72,7 +72,7 @@ static int bucket_perm_choose(struct crush_bucket *bucket, ...@@ -72,7 +72,7 @@ static int bucket_perm_choose(struct crush_bucket *bucket,
unsigned i, s; unsigned i, s;
/* start a new permutation if @x has changed */ /* start a new permutation if @x has changed */
if (bucket->perm_x != x || bucket->perm_n == 0) { if (bucket->perm_x != (__u32)x || bucket->perm_n == 0) {
dprintk("bucket %d new x=%d\n", bucket->id, x); dprintk("bucket %d new x=%d\n", bucket->id, x);
bucket->perm_x = x; bucket->perm_x = x;
...@@ -219,7 +219,7 @@ static int bucket_tree_choose(struct crush_bucket_tree *bucket, ...@@ -219,7 +219,7 @@ static int bucket_tree_choose(struct crush_bucket_tree *bucket,
static int bucket_straw_choose(struct crush_bucket_straw *bucket, static int bucket_straw_choose(struct crush_bucket_straw *bucket,
int x, int r) int x, int r)
{ {
int i; __u32 i;
int high = 0; int high = 0;
__u64 high_draw = 0; __u64 high_draw = 0;
__u64 draw; __u64 draw;
...@@ -262,7 +262,7 @@ static int crush_bucket_choose(struct crush_bucket *in, int x, int r) ...@@ -262,7 +262,7 @@ static int crush_bucket_choose(struct crush_bucket *in, int x, int r)
* true if device is marked "out" (failed, fully offloaded) * true if device is marked "out" (failed, fully offloaded)
* of the cluster * of the cluster
*/ */
static int is_out(struct crush_map *map, __u32 *weight, int item, int x) static int is_out(const struct crush_map *map, const __u32 *weight, int item, int x)
{ {
if (weight[item] >= 0x10000) if (weight[item] >= 0x10000)
return 0; return 0;
...@@ -287,16 +287,16 @@ static int is_out(struct crush_map *map, __u32 *weight, int item, int x) ...@@ -287,16 +287,16 @@ static int is_out(struct crush_map *map, __u32 *weight, int item, int x)
* @recurse_to_leaf: true if we want one device under each item of given type * @recurse_to_leaf: true if we want one device under each item of given type
* @out2: second output vector for leaf items (if @recurse_to_leaf) * @out2: second output vector for leaf items (if @recurse_to_leaf)
*/ */
static int crush_choose(struct crush_map *map, static int crush_choose(const struct crush_map *map,
struct crush_bucket *bucket, struct crush_bucket *bucket,
__u32 *weight, const __u32 *weight,
int x, int numrep, int type, int x, int numrep, int type,
int *out, int outpos, int *out, int outpos,
int firstn, int recurse_to_leaf, int firstn, int recurse_to_leaf,
int *out2) int *out2)
{ {
int rep; int rep;
int ftotal, flocal; unsigned int ftotal, flocal;
int retry_descent, retry_bucket, skip_rep; int retry_descent, retry_bucket, skip_rep;
struct crush_bucket *in = bucket; struct crush_bucket *in = bucket;
int r; int r;
...@@ -304,7 +304,7 @@ static int crush_choose(struct crush_map *map, ...@@ -304,7 +304,7 @@ static int crush_choose(struct crush_map *map,
int item = 0; int item = 0;
int itemtype; int itemtype;
int collide, reject; int collide, reject;
const int orig_tries = 5; /* attempts before we fall back to search */ const unsigned int orig_tries = 5; /* attempts before we fall back to search */
dprintk("CHOOSE%s bucket %d x %d outpos %d numrep %d\n", recurse_to_leaf ? "_LEAF" : "", dprintk("CHOOSE%s bucket %d x %d outpos %d numrep %d\n", recurse_to_leaf ? "_LEAF" : "",
bucket->id, x, outpos, numrep); bucket->id, x, outpos, numrep);
...@@ -325,7 +325,7 @@ static int crush_choose(struct crush_map *map, ...@@ -325,7 +325,7 @@ static int crush_choose(struct crush_map *map,
r = rep; r = rep;
if (in->alg == CRUSH_BUCKET_UNIFORM) { if (in->alg == CRUSH_BUCKET_UNIFORM) {
/* be careful */ /* be careful */
if (firstn || numrep >= in->size) if (firstn || (__u32)numrep >= in->size)
/* r' = r + f_total */ /* r' = r + f_total */
r += ftotal; r += ftotal;
else if (in->size % numrep == 0) else if (in->size % numrep == 0)
...@@ -425,7 +425,7 @@ static int crush_choose(struct crush_map *map, ...@@ -425,7 +425,7 @@ static int crush_choose(struct crush_map *map,
/* else give up */ /* else give up */
skip_rep = 1; skip_rep = 1;
dprintk(" reject %d collide %d " dprintk(" reject %d collide %d "
"ftotal %d flocal %d\n", "ftotal %u flocal %u\n",
reject, collide, ftotal, reject, collide, ftotal,
flocal); flocal);
} }
...@@ -456,9 +456,9 @@ static int crush_choose(struct crush_map *map, ...@@ -456,9 +456,9 @@ static int crush_choose(struct crush_map *map,
* @result_max: maximum result size * @result_max: maximum result size
* @force: force initial replica choice; -1 for none * @force: force initial replica choice; -1 for none
*/ */
int crush_do_rule(struct crush_map *map, int crush_do_rule(const struct crush_map *map,
int ruleno, int x, int *result, int result_max, int ruleno, int x, int *result, int result_max,
int force, __u32 *weight) int force, const __u32 *weight)
{ {
int result_len; int result_len;
int force_context[CRUSH_MAX_DEPTH]; int force_context[CRUSH_MAX_DEPTH];
...@@ -473,7 +473,7 @@ int crush_do_rule(struct crush_map *map, ...@@ -473,7 +473,7 @@ int crush_do_rule(struct crush_map *map,
int osize; int osize;
int *tmp; int *tmp;
struct crush_rule *rule; struct crush_rule *rule;
int step; __u32 step;
int i, j; int i, j;
int numrep; int numrep;
int firstn; int firstn;
...@@ -488,7 +488,8 @@ int crush_do_rule(struct crush_map *map, ...@@ -488,7 +488,8 @@ int crush_do_rule(struct crush_map *map,
/* /*
* determine hierarchical context of force, if any. note * determine hierarchical context of force, if any. note
* that this may or may not correspond to the specific types * that this may or may not correspond to the specific types
* referenced by the crush rule. * referenced by the crush rule. it will also only affect
* the first descent (TAKE).
*/ */
if (force >= 0 && if (force >= 0 &&
force < map->max_devices && force < map->max_devices &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment