]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crush: fix tree bucket encoding
authorSage Weil <sage@newdream.net>
Fri, 20 May 2011 23:41:16 +0000 (16:41 -0700)
committerSage Weil <sage@newdream.net>
Fri, 20 May 2011 23:45:40 +0000 (16:45 -0700)
I wonder how long this has been broken!

Signed-off-by: Sage Weil <sage@newdream.net>
src/crush/CrushWrapper.h

index e9075c56198e84abff461db81b4d72210609dc88..193b7c8507de99b508e3f82957e867df7493920e 100644 (file)
@@ -439,6 +439,9 @@ public:
          ::encode(((crush_bucket_straw*)crush->buckets[i])->straws[j], bl);
        }
        break;
+      default:
+       assert(0);
+       break;
       }
     }
 
@@ -579,12 +582,10 @@ public:
       }
 
       case CRUSH_BUCKET_TREE: {
-       unsigned num_nodes;
        crush_bucket_tree* cbt = (crush_bucket_tree*)bucket;
-       ::decode(num_nodes, blp);
-       cbt->num_nodes = num_nodes;
-       cbt->node_weights = (__u32*)calloc(1, num_nodes * sizeof(__u32));
-       for (unsigned j=0; j<num_nodes; j++) {
+       ::decode(cbt->num_nodes, blp);
+       cbt->node_weights = (__u32*)calloc(1, cbt->num_nodes * sizeof(__u32));
+       for (unsigned j=0; j<cbt->num_nodes; j++) {
          ::decode(cbt->node_weights[j], blp);
        }
        break;