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: v10.0.0~30^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=310bf784b7cd8d75f2ab7ee431bc764f5b312aa2;p=ceph.git osd: Use boost::optional instead of snap 0 for "all_clones" Signed-off-by: David Zafman --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index db93424b6a57..29f1e4cfe747 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -12140,7 +12140,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); @@ -12149,7 +12149,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. @@ -12200,7 +12200,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; @@ -12281,7 +12281,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 d84769ae061e..1b65b5012912 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -1506,7 +1506,7 @@ private: const spg_t &pgid, const char *mode, bool allow_incomplete_clones, - snapid_t target, + boost::optional target, vector::reverse_iterator *curclone); public: