]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
PG: reset the missing set when restarting backfill 14053/head
authorJosh Durgin <jdurgin@redhat.com>
Wed, 15 Mar 2017 02:03:34 +0000 (19:03 -0700)
committerJosh Durgin <jdurgin@redhat.com>
Mon, 20 Mar 2017 20:40:10 +0000 (13:40 -0700)
During split we restart backfill by resetting last_backfill. When we
are backfilling, we assume our missing set is only relevant before
last_backfill, so we need to reset it here as well.

Fixes: http://tracker.ceph.com/issues/19191
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
src/osd/PG.cc

index e6994c284f70cf31346338389856b60004734680..08bf674479b8637d03c5714239673a51660f53fe 100644 (file)
@@ -2232,6 +2232,10 @@ void PG::split_into(pg_t child_pgid, PG *child, unsigned split_bits)
     // in the future).
     info.set_last_backfill(hobject_t());
     child->info.set_last_backfill(hobject_t());
+    // restarting backfill implies that the missing set is empty,
+    // since it is only used for objects prior to last_backfill
+    pg_log.reset_backfill();
+    child->pg_log.reset_backfill();
   }
 
   child->info.stats = info.stats;