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~108 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=eb0a3fa67906181fab872d14ed5e0bcaba03da6f;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 d0b226ef8de6..f2e0beb10fe7 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -3156,12 +3156,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?