]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG: don't write hitset while scrubbing, update scrub_cstat 4229/head
authorSamuel Just <sjust@redhat.com>
Sun, 29 Mar 2015 22:30:52 +0000 (15:30 -0700)
committerSamuel Just <sjust@redhat.com>
Tue, 31 Mar 2015 16:21:04 +0000 (09:21 -0700)
Fixes: 11263
Fixes: 11262
Backport: firefly
Signed-off-by: Samuel Just <sjust@redhat.com>
src/osd/ReplicatedPG.cc

index b705ae22f3a08ac276dddd110744fa906fd75ebe..f45ccece5e3a9ee9109f45c369e7224bd89796f0 100644 (file)
@@ -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);
 }