static int bucket_tree_choose(struct crush_bucket_tree *bucket,
                              int x, int r)
 {
-       int n, l;
+       int n;
        __u32 w;
        __u64 t;
 
        n = bucket->num_nodes >> 1;
 
        while (!terminal(n)) {
+               int l;
                /* pick point in [0, w) */
                w = bucket->node_weights[n];
                t = (__u64)crush_hash32_4(bucket->h.hash, x, n, r,
        __u32 step;
        int i, j;
        int numrep;
-       int firstn;
        const int descend_once = 0;
 
        if ((__u32)ruleno >= map->max_rules) {
        o = b;
 
        for (step = 0; step < rule->len; step++) {
+               int firstn = 0;
                struct crush_rule_step *curstep = &rule->steps[step];
 
-               firstn = 0;
                switch (curstep->op) {
                case CRUSH_RULE_TAKE:
                        w[0] = curstep->arg1;