From: Jianpeng Ma Date: Fri, 20 Mar 2015 03:08:57 +0000 (+0800) Subject: osd/ReplicatedPG: Only promote object success, it can requeue proxy-read ops. X-Git-Tag: v9.0.3~57^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e6334bdcc9970c2725bc72a15010b8f02effce86;p=ceph.git osd/ReplicatedPG: Only promote object success, it can requeue proxy-read ops. For example, it promtoe object met data digest error, it still try proxy-read continue. Signed-off-by: Jianpeng Ma --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index a443899a572a..fa367fcf7c8f 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -6387,11 +6387,13 @@ void ReplicatedPG::process_copy_chunk(hobject_t oid, ceph_tid_t tid, int r) cobc->stop_block(); // cancel and requeue proxy reads on this object - kick_proxy_read_blocked(cobc->obs.oi.soid); - for (map::iterator it = proxyread_ops.begin(); - it != proxyread_ops.end(); ++it) { - if (it->second->soid == cobc->obs.oi.soid) { - cancel_proxy_read(it->second); + if (!r) { + kick_proxy_read_blocked(cobc->obs.oi.soid); + for (map::iterator it = proxyread_ops.begin(); + it != proxyread_ops.end(); ++it) { + if (it->second->soid == cobc->obs.oi.soid) { + cancel_proxy_read(it->second); + } } }