From: Samuel Just Date: Sun, 29 Mar 2015 22:30:52 +0000 (-0700) Subject: ReplicatedPG: don't write hitset while scrubbing, update scrub_cstat X-Git-Tag: v0.94~8^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=23efab7d4fa6370930d185df3342720bbb25c5af;p=ceph.git ReplicatedPG: don't write hitset while scrubbing, update scrub_cstat Fixes: 11263 Fixes: 11262 Backport: firefly Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index b705ae22f3a08..f45ccece5e3a9 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -10196,12 +10196,16 @@ void ReplicatedPG::hit_set_persist() // Once we hit a degraded object just skip further trim if (is_degraded_or_backfilling_object(aoid)) return; + if (scrubber.write_blocked_by_scrub(aoid)) + return; } oid = get_hit_set_archive_object(start, now); // If the current object is degraded we skip this persist request if (is_degraded_or_backfilling_object(oid)) return; + if (scrubber.write_blocked_by_scrub(oid)) + return; // If backfill is in progress and we could possibly overlap with the // hit_set_* objects, back off. Since these all have @@ -10337,6 +10341,10 @@ void ReplicatedPG::hit_set_persist() hit_set_trim(repop, max); info.stats.stats.add(ctx->delta_stats); + if (scrubber.active) { + if (oid < scrubber.start) + scrub_cstat.add(ctx->delta_stats); + } simple_repop_submit(repop); }