]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crush/CrushWrapper: remove_item_under: weight down weight-sets
authorSage Weil <sage@redhat.com>
Fri, 14 Jul 2017 19:37:12 +0000 (15:37 -0400)
committerSage Weil <sage@redhat.com>
Fri, 21 Jul 2017 17:50:55 +0000 (13:50 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/crush/CrushWrapper.cc

index 66bffe0b01235f654cfaadb4b583085492753dbd..2a7b7832b7dc5bb37a70fd049a6d1e4a5690cdcb 100644 (file)
@@ -518,6 +518,12 @@ int CrushWrapper::_remove_item_under(
       ldout(cct, 5) << "_remove_item_under removing item " << item
                    << " from bucket " << b->id << dendl;
       bucket_remove_item(b, item);
+      for (auto& p : choose_args) {
+       // weight down each weight-set to 0 before we remove the item
+       vector<int> weightv(get_choose_args_positions(p.second), 0);
+       _choose_args_adjust_item_weight_in_bucket(
+         cct, p.second, b->id, item, weightv, nullptr);
+      }
       adjust_item_weight(cct, b->id, b->weight);
       ret = 0;
     } else if (id < 0) {