]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG: copy: use aggregate return code instead of individual Op return
authorGreg Farnum <greg@inktank.com>
Mon, 7 Oct 2013 20:11:21 +0000 (13:11 -0700)
committerGreg Farnum <greg@inktank.com>
Mon, 7 Oct 2013 20:50:30 +0000 (13:50 -0700)
It appears that the OSD is not filling in the individual return codes, and they
should be equivalent for all purposes we care about here (the only Op we are
doing is the copy-get, and if it fails we are getting its failure code).

Reported-by: Sage Weil <sage@inktank.com>
Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
src/osd/ReplicatedPG.cc

index d02a9c9cc48166d35db1ffac8dc90eb6b024e38e..6c8b092ca01820afb5e157b7e560afcfeafa168e 100644 (file)
@@ -4412,14 +4412,13 @@ void ReplicatedPG::process_copy_chunk(hobject_t oid, tid_t tid, int r)
       dout(10) << __func__ << " fetching more" << dendl;
       _copy_some(obc, cop);
       return;
-    } else {
-      _build_finish_copy_transaction(cop, results.get<3>());
-      results.get<1>() = cop->temp_cursor.data_offset;
     }
+    _build_finish_copy_transaction(cop, results.get<3>());
+    results.get<1>() = cop->temp_cursor.data_offset;
   }
 
   dout(20) << __func__ << " complete; committing" << dendl;
-  results.get<0>() = cop->rval;
+  results.get<0>() = r;
   cop->cb->complete(results);
 
   copy_ops.erase(obc->obs.oi.soid);