]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG::cancel_pull: drop_recovery_read lock
authorSamuel Just <sjust@redhat.com>
Sat, 10 Jan 2015 01:43:36 +0000 (17:43 -0800)
committerSamuel Just <sjust@redhat.com>
Fri, 30 Jan 2015 19:33:24 +0000 (11:33 -0800)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/osd/ReplicatedPG.cc

index 2332cd2c4fc9582a56cfc5af18a7a1479c87896f..20fbfec1d9a1b960e8a7b79daa28ff23d0151ea2 100644 (file)
@@ -10446,6 +10446,12 @@ void ReplicatedPG::_clear_recovery_state()
 void ReplicatedPG::cancel_pull(const hobject_t &soid)
 {
   assert(recovering.count(soid));
+  ObjectContextRef obc = recovering[soid];
+  if (obc) {
+    list<OpRequestRef> blocked_ops;
+    obc->drop_recovery_read(&blocked_ops);
+    requeue_ops(blocked_ops);
+  }
   recovering.erase(soid);
   finish_recovery_op(soid);
   if (is_missing_object(soid))