From: Theofilos Mouratidis Date: Mon, 25 Sep 2017 14:17:47 +0000 (+0200) Subject: osd: upmap should respect osd reweights X-Git-Tag: v13.0.1~786^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F17944%2Fhead;p=ceph.git osd: upmap should respect osd reweights Modify OSDMap::calc_pg_upmaps to take the osd reweight into account when computing the size of each OSD. Signed-off-by: Theofilos Mouratidis Fixes: http://tracker.ceph.com/issues/21538 --- diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 395ca3723173..c9db12c0f030 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -3835,8 +3835,9 @@ int OSDMap::calc_pg_upmaps( tmp.crush->get_rule_weight_osd_map(ruleno, &pmap); ldout(cct,30) << __func__ << " pool " << i.first << " ruleno " << ruleno << dendl; for (auto p : pmap) { - osd_weight[p.first] += p.second; - osd_weight_total += p.second; + auto adjusted_weight = tmp.get_weightf(p.first) * p.second; + osd_weight[p.first] += adjusted_weight; + osd_weight_total += adjusted_weight; } } for (auto& i : osd_weight) {