From: Sage Weil Date: Thu, 3 Sep 2015 01:32:30 +0000 (-0400) Subject: osd/ReplicatedPG: snaptimmer: adjust stats through ctx->delta_stats X-Git-Tag: v9.1.0~135^2^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9bf103c420b886e103c34dbecb98cacfedc05c17;p=ceph.git osd/ReplicatedPG: snaptimmer: adjust stats through ctx->delta_stats We should not directly modifying the stats here; use the existing ctx->delta_stats field. Signed-off-by: Sage Weil --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index c29a2afa706..2c12e72bb2b 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -3093,8 +3093,7 @@ ReplicatedPG::RepGather *ReplicatedPG::trim_object(const hobject_t &coid) if (*p == last) break; assert(p != snapset.clones.end()); - object_stat_sum_t delta; - delta.num_bytes -= snapset.get_clone_bytes(last); + ctx->delta_stats.num_bytes -= snapset.get_clone_bytes(last); if (p != snapset.clones.begin()) { // not the oldest... merge overlap into next older clone @@ -3104,25 +3103,24 @@ ReplicatedPG::RepGather *ReplicatedPG::trim_object(const hobject_t &coid) bool adjust_prev_bytes = is_present_clone(prev_coid); if (adjust_prev_bytes) - delta.num_bytes -= snapset.get_clone_bytes(*n); + ctx->delta_stats.num_bytes -= snapset.get_clone_bytes(*n); snapset.clone_overlap[*n].intersection_of( snapset.clone_overlap[*p]); if (adjust_prev_bytes) - delta.num_bytes += snapset.get_clone_bytes(*n); + ctx->delta_stats.num_bytes += snapset.get_clone_bytes(*n); } - delta.num_objects--; + ctx->delta_stats.num_objects--; if (coi.is_dirty()) - delta.num_objects_dirty--; + ctx->delta_stats.num_objects_dirty--; if (coi.is_omap()) - delta.num_objects_omap--; + ctx->delta_stats.num_objects_omap--; if (coi.is_whiteout()) { dout(20) << __func__ << " trimming whiteout on " << coid << dendl; - delta.num_whiteouts--; + ctx->delta_stats.num_whiteouts--; } - delta.num_object_clones--; - info.stats.stats.add(delta); + ctx->delta_stats.num_object_clones--; obc->obs.exists = false; snapset.clones.erase(p); @@ -12163,6 +12161,8 @@ boost::statechart::result ReplicatedPG::TrimmingObjects::react(const SnapTrim&) assert(repop); repop->queue_snap_trimmer = true; + info.stats.stats.add(ctx->delta_stats); + repops.insert(repop->get()); pg->simple_repop_submit(repop); }