diff options
author | Sage Weil <sage@inktank.com> | 2014-03-16 12:12:29 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2014-03-16 12:12:29 -0700 |
commit | ce9bfb879c32690d030db6b2a349b7b6f6e6a468 (patch) | |
tree | 365cbf167d89a1576113725d2c9e0301d8913495 | |
parent | 2f9a7484190083133227b205ce86438f6cb72ad9 (diff) | |
parent | 04de781765dd5ac0e28dd1a43cfe85020c0854f8 (diff) | |
download | ceph-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.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()); |