]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG::on_global_recover: requeue degraded, then unreadable
authorSamuel Just <sam.just@inktank.com>
Thu, 20 Feb 2014 21:15:51 +0000 (13:15 -0800)
committerSamuel Just <sam.just@inktank.com>
Thu, 20 Feb 2014 21:22:51 +0000 (13:22 -0800)
We need to requeue in reverse order since we are requeueing at the
front.

Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/ReplicatedPG.cc

index 3de2c21608b7bae96120319818c713a552d8e531..11b5b63eaab1bb35073ab57a47e909af17f5992b 100644 (file)
@@ -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);
 }