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

index 980df214a555af71131f021e8a703a2c8450b8ca..c3e1c50e364229b3e711d6c3419ce0f8304cfb25 100644 (file)
@@ -438,6 +438,11 @@ int CrushWrapper::remove_item(CephContext *cct, int item, bool unlink_only)
       if (id == item) {
        ldout(cct, 5) << "remove_item removing item " << item
                      << " from bucket " << b->id << dendl;
+       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(cct, p.second, item, weightv, nullptr);
+       }
        bucket_remove_item(b, item);
        adjust_item_weight(cct, b->id, b->weight);
        ret = 0;