From: Sage Weil Date: Tue, 10 Mar 2015 13:38:06 +0000 (-0700) Subject: crush: fix crush_get_bucket_item_weight and bucket destroy for straw2 X-Git-Tag: v0.94~48^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6445d9ee7290938de1e4ee9563912a6ab6d8ee5f;p=ceph.git crush: fix crush_get_bucket_item_weight and bucket destroy for straw2 Fixes: #11079 Signed-off-by: Sage Weil --- diff --git a/src/crush/crush.c b/src/crush/crush.c index c45b6f501b22..c0bcdb794355 100644 --- a/src/crush/crush.c +++ b/src/crush/crush.c @@ -42,6 +42,8 @@ int crush_get_bucket_item_weight(const struct crush_bucket *b, int p) return ((struct crush_bucket_tree *)b)->node_weights[crush_calc_tree_node(p)]; case CRUSH_BUCKET_STRAW: return ((struct crush_bucket_straw *)b)->item_weights[p]; + case CRUSH_BUCKET_STRAW2: + return ((struct crush_bucket_straw2 *)b)->item_weights[p]; } return 0; } @@ -79,6 +81,14 @@ void crush_destroy_bucket_straw(struct crush_bucket_straw *b) kfree(b); } +void crush_destroy_bucket_straw2(struct crush_bucket_straw2 *b) +{ + kfree(b->item_weights); + kfree(b->h.perm); + kfree(b->h.items); + kfree(b); +} + void crush_destroy_bucket(struct crush_bucket *b) { switch (b->alg) { @@ -94,6 +104,9 @@ void crush_destroy_bucket(struct crush_bucket *b) case CRUSH_BUCKET_STRAW: crush_destroy_bucket_straw((struct crush_bucket_straw *)b); break; + case CRUSH_BUCKET_STRAW2: + crush_destroy_bucket_straw2((struct crush_bucket_straw2 *)b); + break; } }