From: Sage Weil Date: Thu, 21 Feb 2013 18:30:08 +0000 (-0800) Subject: osd: clear recovery state on pg removal X-Git-Tag: v0.58~22 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6d8dfb18feb4ce263453039fc0afdb1462279e9a;p=ceph.git osd: clear recovery state on pg removal This ensures we release our in-progress recovery counters, which prevents recovery from getting blocked indefinitely when a pool removal races with recovery ops. Fixes: #4217 Backport: bobtail Signed-off-by: Sage Weil Reviewed-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index d23db2884edf..becba7afab0e 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -6247,6 +6247,10 @@ void ReplicatedPG::on_removal() dout(10) << "on_removal" << dendl; apply_and_flush_repops(false); remove_watchers_and_notifies(); + + clear_primary_state(); + osd->remove_want_pg_temp(info.pgid); + cancel_recovery(); } void ReplicatedPG::on_shutdown()