From: Greg Farnum Date: Mon, 7 Oct 2013 20:11:21 +0000 (-0700) Subject: ReplicatedPG: copy: use aggregate return code instead of individual Op return X-Git-Tag: v0.71~16 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4b911cf81773d43f3574724a0ac97c79e1ab2b22;p=ceph.git ReplicatedPG: copy: use aggregate return code instead of individual Op return 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 Signed-off-by: Greg Farnum Reviewed-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index d02a9c9cc48..6c8b092ca01 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -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);