From 72bf3f0152480e8890bd8d3e0976e05b2b7fd8c3 Mon Sep 17 00:00:00 2001 From: Josh Durgin Date: Tue, 14 Mar 2017 19:03:34 -0700 Subject: [PATCH] PG: reset the missing set when restarting backfill 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 --- src/osd/PG.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index e6994c284f70c..08bf674479b86 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -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; -- 2.39.5