From: Sage Weil Date: Fri, 24 Sep 2010 18:43:37 +0000 (-0700) Subject: osd: make sparse data/clone push behave with partial object push X-Git-Tag: v0.22~46^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1bb60b45a859dd1b24b9a501b3d3fe1d11deec31;p=ceph.git osd: make sparse data/clone push behave with partial object push We can't error out if we don't get everything we want in one go now that we support pushing objects in pieces. Remove this check entirely, since we don't have a good error handling case anyway. --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index f9b4da63570d9..264fed24a3114 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -3503,12 +3503,15 @@ void ReplicatedPG::sub_op_push(MOSDSubOp *op) interval_set data_needed; calc_clone_subsets(ssc->snapset, soid, missing, data_needed, clone_subsets); put_snapset_context(ssc); + + interval_set overlap; + overlap.intersection_of(data_subset, data_needed); - dout(10) << "sub_op_push need " << data_needed << ", got " << data_subset << dendl; - if (!data_needed.subset_of(data_subset)) { - dout(0) << "sub_op_push we did not get enough of " << soid << " object data" << dendl; - op->put(); - return; + dout(10) << "sub_op_push need " << data_needed << ", got " << data_subset + << ", overlap " << overlap << dendl; + + if (op->complete) { + // FIXME: we should verify that we got the whole thing. } // did we get more data than we need?