]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
add is_acting_osd function to check if pg is on that osd
authorxinxin shu <xinxin.shu@intel.com>
Thu, 29 Jan 2015 18:05:11 +0000 (02:05 +0800)
committerxinxin shu <xinxin.shu@intel.com>
Mon, 2 Feb 2015 03:07:08 +0000 (11:07 +0800)
Signed-off-by: xinxin shu <xinxin.shu@intel.com>
src/osd/osd_types.cc
src/osd/osd_types.h

index 18998bfca7e09cf14d27bde216fecc0c54137c3d..139ea8628a3e9f36c136a3c757737acd0f314280 100644 (file)
@@ -1751,6 +1751,21 @@ void object_stat_collection_t::generate_test_instances(list<object_stat_collecti
 
 // -- pg_stat_t --
 
+bool pg_stat_t::is_acting_osd(int32_t osd, bool primary) const
+{
+  if (primary && osd == acting_primary) {
+    return true;
+  } else if (!primary) {
+    for(vector<int32_t>::const_iterator it = acting.begin();
+        it != acting.end(); it++)
+    {
+      if (*it == osd)
+        return true;
+    }
+  }
+  return false;
+}
+
 void pg_stat_t::dump(Formatter *f) const
 {
   f->dump_stream("version") << version;
index f08ff93f31fa132a4d57cac6823cd3765244c66d..02a88f0020c9cf25b81154d622beb5593bb1f586 100644 (file)
@@ -1493,6 +1493,7 @@ struct pg_stat_t {
     ondisk_log_size -= o.ondisk_log_size;
   }
 
+  bool is_acting_osd(int32_t osd, bool primary) const;
   void dump(Formatter *f) const;
   void dump_brief(Formatter *f) const;
   void encode(bufferlist &bl) const;