]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
pg: change _scrub() to take out parameters as pointers
authorMike Ryan <mike.ryan@inktank.com>
Tue, 3 Jul 2012 22:37:12 +0000 (15:37 -0700)
committerMike Ryan <mike.ryan@inktank.com>
Wed, 5 Sep 2012 17:13:33 +0000 (10:13 -0700)
Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
src/osd/PG.cc
src/osd/PG.h
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index 0a1e56d6783662a08092e85c69386793925f1ceb..61476ccfebcd8016e0ec5bf42572de838211ccec 100644 (file)
@@ -3489,7 +3489,7 @@ void PG::scrub_finalize() {
   }
 
   // ok, do the pg-type specific scrubbing
-  _scrub(primary_scrubmap, errors, fixed);
+  _scrub(primary_scrubmap, &errors, &fixed);
 
   {
     stringstream oss;
index 85a24c62dd0fd8d29e9a15cfe94c4a299c5b7354..72b5c594cc065ed7948b90b061c3cfaf5382cc40 100644 (file)
@@ -802,7 +802,7 @@ public:
   void _request_scrub_map(int replica, eversion_t version);
   void build_scrub_map(ScrubMap &map);
   void build_inc_scrub_map(ScrubMap &map, eversion_t v);
-  virtual int _scrub(ScrubMap &map, int& errors, int& fixed) { return 0; }
+  virtual int _scrub(ScrubMap &map, int* errors, int* fixed) { return 0; }
   virtual coll_t get_temp_coll() = 0;
   virtual bool have_temp_coll() = 0;
   void clear_scrub_reserved();
index 005ef0109b70d5684b5935232751105920bb41aa..7be408437936b7ad12d83d10b685e85daefd87f0 100644 (file)
@@ -6538,7 +6538,7 @@ void ReplicatedPG::clean_up_local(ObjectStore::Transaction& t)
 // SCRUB
 
 
-int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
+int ReplicatedPG::_scrub(ScrubMap& scrubmap, int* errors, int* fixed)
 {
   dout(10) << "_scrub" << dendl;
 
@@ -6569,7 +6569,7 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
       if (p->second.attrs.count(SS_ATTR) == 0) {
        osd->clog.error() << mode << " " << info.pgid << " " << soid
                          << " no '" << SS_ATTR << "' attr";
-       errors++;
+       ++(*errors);
        continue;
       }
       bufferlist bl;
@@ -6581,7 +6581,7 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
       if (head != hobject_t()) {
        osd->clog.error() << mode << " " << info.pgid << " " << head
                          << " missing clones";
-       errors++;
+       ++(*errors);
       }
       
       // what will be next?
@@ -6614,7 +6614,7 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
     if (p->second.attrs.count(OI_ATTR) == 0) {
       osd->clog.error() << mode << " " << info.pgid << " " << soid
                        << " no '" << OI_ATTR << "' attr";
-      errors++;
+      ++(*errors);
       continue;
     }
     bufferlist bv;
@@ -6625,7 +6625,7 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
       osd->clog.error() << mode << " " << info.pgid << " " << soid
                        << " on disk size (" << p->second.size
                        << ") does not match object info size (" << oi.size << ")";
-      ++errors;
+      ++(*errors);
     }
 
     dout(20) << mode << "  " << soid << " " << oi << dendl;
@@ -6640,7 +6640,7 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
       if (!snapset.head_exists) {
        osd->clog.error() << mode << " " << info.pgid << " " << soid
                          << " snapset.head_exists=false, but object exists";
-       errors++;
+       ++(*errors);
        continue;
       }
     } else if (soid.snap) {
@@ -6652,7 +6652,7 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
       if (soid.snap != *curclone) {
        osd->clog.error() << mode << " " << info.pgid << " " << soid
                          << " expected clone " << *curclone;
-       ++errors;
+       ++(*errors);
        assert(soid.snap == *curclone);
       }
 
@@ -6690,10 +6690,10 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
                      << cstat.sum.num_objects << "/" << info.stats.stats.sum.num_objects << " objects, "
                      << cstat.sum.num_object_clones << "/" << info.stats.stats.sum.num_object_clones << " clones, "
                      << cstat.sum.num_bytes << "/" << info.stats.stats.sum.num_bytes << " bytes.\n";
-    errors++;
+    ++(*errors);
 
     if (repair) {
-      fixed++;
+      ++(*fixed);
       info.stats.stats = cstat;
       update_stats();
       share_pg_info();
@@ -6701,7 +6701,7 @@ int ReplicatedPG::_scrub(ScrubMap& scrubmap, int& errors, int& fixed)
   }
 
   dout(10) << "_scrub (" << mode << ") finish" << dendl;
-  return errors;
+  return (*errors);
 }
 
 /*---SnapTrimmer Logging---*/
index 79b373f9d01dad68a0b0dca34fdc6976d9ed0c15..2cd54301f3b7a116b59a6c6daf0ddd484857d6a4 100644 (file)
@@ -905,7 +905,7 @@ protected:
 
 
   // -- scrub --
-  virtual int _scrub(ScrubMap& map, int& errors, int& fixed);
+  virtual int _scrub(ScrubMap& map, int* errors, int* fixed);
 
   void apply_and_flush_repops(bool requeue);