From: Samuel Just Date: Thu, 20 Feb 2014 21:15:51 +0000 (-0800) Subject: ReplicatedPG::on_global_recover: requeue degraded, then unreadable X-Git-Tag: v0.78~148^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c703a89d0c9767812ae19a90e0563027fbb2b41a;p=ceph.git ReplicatedPG::on_global_recover: requeue degraded, then unreadable We need to requeue in reverse order since we are requeueing at the front. Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 3de2c21608b7..11b5b63eaab1 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -301,16 +301,16 @@ void ReplicatedPG::on_global_recover( } recovering.erase(i); finish_recovery_op(soid); - if (waiting_for_unreadable_object.count(soid)) { - dout(20) << " kicking unreadable waiters on " << soid << dendl; - requeue_ops(waiting_for_unreadable_object[soid]); - waiting_for_unreadable_object.erase(soid); - } if (waiting_for_degraded_object.count(soid)) { dout(20) << " kicking degraded waiters on " << soid << dendl; requeue_ops(waiting_for_degraded_object[soid]); waiting_for_degraded_object.erase(soid); } + if (waiting_for_unreadable_object.count(soid)) { + dout(20) << " kicking unreadable waiters on " << soid << dendl; + requeue_ops(waiting_for_unreadable_object[soid]); + waiting_for_unreadable_object.erase(soid); + } finish_degraded_object(soid); }