]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: clear recovery state on pg removal
authorSage Weil <sage@inktank.com>
Thu, 21 Feb 2013 18:30:08 +0000 (10:30 -0800)
committerSage Weil <sage@inktank.com>
Thu, 21 Feb 2013 18:43:20 +0000 (10:43 -0800)
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 <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
src/osd/ReplicatedPG.cc

index d23db2884edf22eb255e4c7a52bef711ef1ce984..becba7afab0e7acfd5aa2a9a8a090a7db8f97bb3 100644 (file)
@@ -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()