]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Use boost::optional instead of snap 0 for "all_clones"
authorDavid Zafman <dzafman@redhat.com>
Mon, 26 Oct 2015 18:36:43 +0000 (11:36 -0700)
committerDavid Zafman <dzafman@redhat.com>
Fri, 30 Oct 2015 20:01:51 +0000 (13:01 -0700)
Signed-off-by: David Zafman <dzafman@redhat.com>
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index db93424b6a57fe4b53b7dbc9ed71d85ad63a83ae..29f1e4cfe747be19b1be6b419e9c864a06c46f91 100644 (file)
@@ -12140,7 +12140,7 @@ unsigned ReplicatedPG::process_clones_to(const boost::optional<hobject_t> &head,
   const spg_t &pgid,
   const char *mode,
   bool allow_incomplete_clones,
-  snapid_t target,
+  boost::optional<snapid_t> target,
   vector<snapid_t>::reverse_iterator *curclone)
 {
   assert(head);
@@ -12149,7 +12149,7 @@ unsigned ReplicatedPG::process_clones_to(const boost::optional<hobject_t> &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<snapid_t> all_clones;   // Unspecified snapid_t or boost::none
 
   // traverse in reverse order.
   boost::optional<hobject_t> 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<snapid_t> target;
       // Expecting an object with snap for current head
       if (soid.has_snapset() || soid.get_head() != head->get_head()) {
 
index d84769ae061ee7046a358bdd745795cd3113b3a5..1b65b50129128b33b7a01a5f8d8695c6422f8ba9 100644 (file)
@@ -1506,7 +1506,7 @@ private:
     const spg_t &pgid,
     const char *mode,
     bool allow_incomplete_clones,
-    snapid_t target,
+    boost::optional<snapid_t> target,
     vector<snapid_t>::reverse_iterator *curclone);
 
 public: