From: David Zafman Date: Mon, 26 Oct 2015 18:36:43 +0000 (-0700) Subject: osd: Use boost::optional instead of snap 0 for "all_clones" X-Git-Tag: v0.94.7~28^2~1^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6afb5d3be26931c670f22c892c925e2556c8e562;p=ceph.git osd: Use boost::optional instead of snap 0 for "all_clones" Signed-off-by: David Zafman (cherry picked from commit 310bf784b7cd8d75f2ab7ee431bc764f5b312aa2) --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 93a077ba91e4..3c6511f66bb2 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -11271,7 +11271,7 @@ unsigned ReplicatedPG::process_clones_to(const boost::optional &head, const spg_t &pgid, const char *mode, bool allow_incomplete_clones, - snapid_t target, + boost::optional target, vector::reverse_iterator *curclone) { assert(head); @@ -11280,7 +11280,7 @@ unsigned ReplicatedPG::process_clones_to(const boost::optional &head, // NOTE: clones are in descending order, thus **curclone > target test here hobject_t next_clone(head.get()); - while(doing_clones(snapset, *curclone) && **curclone > target) { + while(doing_clones(snapset, *curclone) && (!target || **curclone > *target)) { ++missing; // it is okay to be missing one or more clones in a cache tier. // skip higher-numbered clones in the list. @@ -11331,7 +11331,7 @@ void ReplicatedPG::_scrub( bool repair = state_test(PG_STATE_REPAIR); bool deep_scrub = state_test(PG_STATE_DEEP_SCRUB); const char *mode = (repair ? "repair": (deep_scrub ? "deep-scrub" : "scrub")); - const snapid_t all_clones = 0; + boost::optional all_clones; // Unspecified snapid_t or boost::none // traverse in reverse order. boost::optional head; @@ -11410,7 +11410,7 @@ void ReplicatedPG::_scrub( // Check for any problems while processing clones if (doing_clones(snapset, curclone)) { - snapid_t target; + boost::optional target; // Expecting an object with snap for current head if (soid.has_snapset() || soid.get_head() != head->get_head()) { diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h index d2dc30499507..c8ed4fc2c909 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -1434,7 +1434,7 @@ private: const spg_t &pgid, const char *mode, bool allow_incomplete_clones, - snapid_t target, + boost::optional target, vector::reverse_iterator *curclone); public: