From: Samuel Just Date: Sat, 10 Jan 2015 01:43:36 +0000 (-0800) Subject: ReplicatedPG::cancel_pull: drop_recovery_read lock X-Git-Tag: v0.93~128^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e00daf56ff054440574c861282f0b49bff1a50b9;p=ceph.git ReplicatedPG::cancel_pull: drop_recovery_read lock Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 2332cd2c4fc9..20fbfec1d9a1 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -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 blocked_ops; + obc->drop_recovery_read(&blocked_ops); + requeue_ops(blocked_ops); + } recovering.erase(soid); finish_recovery_op(soid); if (is_missing_object(soid))