]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/ReplicatedPG: Only promote object success, it can requeue proxy-read ops.
authorJianpeng Ma <jianpeng.ma@intel.com>
Fri, 20 Mar 2015 03:08:57 +0000 (11:08 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Tue, 9 Jun 2015 02:54:53 +0000 (10:54 +0800)
For example, it promtoe object met data digest error, it still try
proxy-read continue.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/osd/ReplicatedPG.cc

index a443899a572addbf7acff4cd80ebdf0e4836ea89..fa367fcf7c8f698debae97feb0d0eb7438427dbf 100644 (file)
@@ -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<ceph_tid_t, ProxyReadOpRef>::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<ceph_tid_t, ProxyReadOpRef>::iterator it = proxyread_ops.begin();
+       it != proxyread_ops.end(); ++it) {
+      if (it->second->soid == cobc->obs.oi.soid) {
+       cancel_proxy_read(it->second);
+      }
     }
   }