diff options
-rw-r--r-- | src/osd/OSD.cc | 5 |
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()); |