]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crush: make recurse_to_leaf slightly less fragile
authorSage Weil <sage@newdream.net>
Fri, 21 Nov 2008 17:43:31 +0000 (09:43 -0800)
committerSage Weil <sage@newdream.net>
Fri, 21 Nov 2008 17:46:09 +0000 (09:46 -0800)
src/crush/mapper.c

index da9c3b6f46f7b02323be1cfc368912e0c47a5cda..6e300ae359105d6fabc725548ef912d83707abbf 100644 (file)
@@ -435,11 +435,13 @@ int crush_do_rule(struct crush_map *map,
                case CRUSH_RULE_CHOOSE_INDEP:
                        BUG_ON(wsize == 0);
 
+                       recurse_to_leaf = 
+                               rule->steps[step].op == CRUSH_RULE_CHOOSE_LEAF_FIRSTN ||
+                               rule->steps[step].op == CRUSH_RULE_CHOOSE_LEAF_INDEP;                           
+
                        /* reset output */
                        osize = 0;
 
-                       recurse_to_leaf = rule->steps[step].op >=
-                               CRUSH_RULE_CHOOSE_LEAF_FIRSTN;
                        for (i = 0; i < wsize; i++) {
                                /*
                                 * see CRUSH_N, CRUSH_N_MINUS macros.