summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/osd/OSD.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index 54e0febeeb1..60a54a620b9 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -6938,6 +6938,11 @@ void OSD::handle_pg_query(OpRequestRef op)
dout(10) << " pg " << pgid << " dne" << dendl;
pg_info_t empty(spg_t(pgid.pgid, it->second.to));
+ /* This is racy, but that should be ok: if we complete the deletion
+ * before the pg is recreated, we'll just start it off backfilling
+ * instead of just empty */
+ if (service.deleting_pgs.lookup(pgid))
+ empty.last_backfill = hobject_t();
if (it->second.type == pg_query_t::LOG ||
it->second.type == pg_query_t::FULLLOG) {
ConnectionRef con = service.get_con_osd_cluster(from, osdmap->get_epoch());