summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2014-03-16 12:12:29 -0700
committerSage Weil <sage@inktank.com>2014-03-16 12:12:29 -0700
commitce9bfb879c32690d030db6b2a349b7b6f6e6a468 (patch)
tree365cbf167d89a1576113725d2c9e0301d8913495
parent2f9a7484190083133227b205ce86438f6cb72ad9 (diff)
parent04de781765dd5ac0e28dd1a43cfe85020c0854f8 (diff)
downloadceph-ce9bfb879c32690d030db6b2a349b7b6f6e6a468.tar.gz
Merge pull request #1474 from ceph/wip-7740
OSD::handle_pg_query: on dne pg, send lb=hobject_t() if deleting Reviewed-by: Sage Weil <sage@inktank.com>
-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());