]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/mds/mdstypes.cc
import 15.2.0 Octopus source
[ceph.git] / ceph / src / mds / mdstypes.cc
index a55c85590af87e0df644c307388f16c7e33bfbf0..b7f5d87cfa566c9e37fdcc39e8fa3c47d7aed2ef 100644 (file)
@@ -4,6 +4,7 @@
 #include "mdstypes.h"
 #include "MDSContext.h"
 #include "common/Formatter.h"
+#include "common/StackStringStream.h"
 
 const mds_gid_t MDS_GID_NONE = mds_gid_t(0);
 
@@ -43,9 +44,10 @@ void frag_info_t::dump(Formatter *f) const
   f->dump_stream("mtime") << mtime;
   f->dump_unsigned("num_files", nfiles);
   f->dump_unsigned("num_subdirs", nsubdirs);
+  f->dump_unsigned("change_attr", change_attr);
 }
 
-void frag_info_t::generate_test_instances(list<frag_info_t*>& ls)
+void frag_info_t::generate_test_instances(std::list<frag_info_t*>& ls)
 {
   ls.push_back(new frag_info_t);
   ls.push_back(new frag_info_t);
@@ -116,7 +118,7 @@ void nest_info_t::dump(Formatter *f) const
   f->dump_stream("rctime") << rctime;
 }
 
-void nest_info_t::generate_test_instances(list<nest_info_t*>& ls)
+void nest_info_t::generate_test_instances(std::list<nest_info_t*>& ls)
 {
   ls.push_back(new nest_info_t);
   ls.push_back(new nest_info_t);
@@ -154,7 +156,7 @@ void quota_info_t::dump(Formatter *f) const
   f->dump_int("max_files", max_files);
 }
 
-void quota_info_t::generate_test_instances(list<quota_info_t *>& ls)
+void quota_info_t::generate_test_instances(std::list<quota_info_t *>& ls)
 {
   ls.push_back(new quota_info_t);
   ls.push_back(new quota_info_t);
@@ -202,7 +204,7 @@ void client_writeable_range_t::dump(Formatter *f) const
   f->dump_unsigned("follows", follows);
 }
 
-void client_writeable_range_t::generate_test_instances(list<client_writeable_range_t*>& ls)
+void client_writeable_range_t::generate_test_instances(std::list<client_writeable_range_t*>& ls)
 {
   ls.push_back(new client_writeable_range_t);
   ls.push_back(new client_writeable_range_t);
@@ -304,7 +306,7 @@ void fnode_t::dump(Formatter *f) const
   f->close_section();
 }
 
-void fnode_t::generate_test_instances(list<fnode_t*>& ls)
+void fnode_t::generate_test_instances(std::list<fnode_t*>& ls)
 {
   ls.push_back(new fnode_t);
   ls.push_back(new fnode_t);
@@ -353,7 +355,7 @@ void old_rstat_t::dump(Formatter *f) const
   f->close_section();
 }
 
-void old_rstat_t::generate_test_instances(list<old_rstat_t*>& ls)
+void old_rstat_t::generate_test_instances(std::list<old_rstat_t*>& ls)
 {
   ls.push_back(new old_rstat_t());
   ls.push_back(new old_rstat_t());
@@ -430,6 +432,12 @@ void feature_bitset_t::decode(bufferlist::const_iterator &p) {
   }
 }
 
+void feature_bitset_t::dump(Formatter *f) const {
+  CachedStackStringStream css;
+  print(*css);
+  f->dump_string("feature_bits", css->strv());
+}
+
 void feature_bitset_t::print(ostream& out) const
 {
   std::ios_base::fmtflags f(out.flags());
@@ -440,29 +448,60 @@ void feature_bitset_t::print(ostream& out) const
   out.flags(f);
 }
 
+/*
+ * metric_spec_t
+ */
+void metric_spec_t::encode(bufferlist& bl) const {
+  using ceph::encode;
+  ENCODE_START(1, 1, bl);
+  encode(metric_flags, bl);
+  ENCODE_FINISH(bl);
+}
+
+void metric_spec_t::decode(bufferlist::const_iterator &p) {
+  using ceph::decode;
+  DECODE_START(1, p);
+  decode(metric_flags, p);
+  DECODE_FINISH(p);
+}
+
+void metric_spec_t::dump(Formatter *f) const {
+  f->dump_object("metric_flags", metric_flags);
+}
+
+void metric_spec_t::print(ostream& out) const
+{
+  out << "{metric_flags: '" << metric_flags << "'}";
+}
+
 /*
  * client_metadata_t
  */
 void client_metadata_t::encode(bufferlist& bl) const
 {
-  ENCODE_START(2, 1, bl);
+  ENCODE_START(3, 1, bl);
   encode(kv_map, bl);
   encode(features, bl);
+  encode(metric_spec, bl);
   ENCODE_FINISH(bl);
 }
 
 void client_metadata_t::decode(bufferlist::const_iterator& p)
 {
-  DECODE_START(2, p);
+  DECODE_START(3, p);
   decode(kv_map, p);
   if (struct_v >= 2)
     decode(features, p);
+  if (struct_v >= 3) {
+    decode(metric_spec, p);
+  }
   DECODE_FINISH(p);
 }
 
 void client_metadata_t::dump(Formatter *f) const
 {
-  f->dump_stream("features") << features;
+  f->dump_object("client_features", features);
+  f->dump_object("metric_spec", metric_spec);
   for (const auto& [name, val] : kv_map)
     f->dump_string(name.c_str(), val);
 }
@@ -532,7 +571,7 @@ void session_info_t::dump(Formatter *f) const
   f->open_array_section("prealloc_inos");
   for (const auto& [start, len] : prealloc_inos) {
     f->open_object_section("ino_range");
-    f->dump_unsigned("start", start);
+    f->dump_stream("start") << start;
     f->dump_unsigned("length", len);
     f->close_section();
   }
@@ -541,7 +580,7 @@ void session_info_t::dump(Formatter *f) const
   f->open_array_section("used_inos");
   for (const auto& [start, len] : used_inos) {
     f->open_object_section("ino_range");
-    f->dump_unsigned("start", start);
+    f->dump_stream("start") << start;
     f->dump_unsigned("length", len);
     f->close_section();
   }
@@ -550,7 +589,7 @@ void session_info_t::dump(Formatter *f) const
   f->dump_object("client_metadata", client_metadata);
 }
 
-void session_info_t::generate_test_instances(list<session_info_t*>& ls)
+void session_info_t::generate_test_instances(std::list<session_info_t*>& ls)
 {
   ls.push_back(new session_info_t);
   ls.push_back(new session_info_t);
@@ -588,7 +627,7 @@ void string_snap_t::dump(Formatter *f) const
   f->dump_unsigned("snapid", snapid);
 }
 
-void string_snap_t::generate_test_instances(list<string_snap_t*>& ls)
+void string_snap_t::generate_test_instances(std::list<string_snap_t*>& ls)
 {
   ls.push_back(new string_snap_t);
   ls.push_back(new string_snap_t);
@@ -631,7 +670,7 @@ void MDSCacheObjectInfo::dump(Formatter *f) const
   f->dump_unsigned("snapid", snapid);
 }
 
-void MDSCacheObjectInfo::generate_test_instances(list<MDSCacheObjectInfo*>& ls)
+void MDSCacheObjectInfo::generate_test_instances(std::list<MDSCacheObjectInfo*>& ls)
 {
   ls.push_back(new MDSCacheObjectInfo);
   ls.push_back(new MDSCacheObjectInfo);
@@ -674,7 +713,7 @@ void mds_table_pending_t::dump(Formatter *f) const
   f->dump_unsigned("tid", tid);
 }
 
-void mds_table_pending_t::generate_test_instances(list<mds_table_pending_t*>& ls)
+void mds_table_pending_t::generate_test_instances(std::list<mds_table_pending_t*>& ls)
 {
   ls.push_back(new mds_table_pending_t);
   ls.push_back(new mds_table_pending_t);
@@ -716,7 +755,7 @@ void inode_load_vec_t::dump(Formatter *f) const
   f->close_section();
 }
 
-void inode_load_vec_t::generate_test_instances(list<inode_load_vec_t*>& ls)
+void inode_load_vec_t::generate_test_instances(std::list<inode_load_vec_t*>& ls)
 {
   ls.push_back(new inode_load_vec_t(DecayRate()));
 }
@@ -839,7 +878,7 @@ void cap_reconnect_t::dump(Formatter *f) const
   f->dump_string("has file locks", capinfo.flock_len ? "true" : "false");
 }
 
-void cap_reconnect_t::generate_test_instances(list<cap_reconnect_t*>& ls)
+void cap_reconnect_t::generate_test_instances(std::list<cap_reconnect_t*>& ls)
 {
   ls.push_back(new cap_reconnect_t);
   ls.back()->path = "/test/path";
@@ -878,18 +917,10 @@ void snaprealm_reconnect_t::dump(Formatter *f) const
   f->dump_int("parent", realm.parent);
 }
 
-void snaprealm_reconnect_t::generate_test_instances(list<snaprealm_reconnect_t*>& ls)
+void snaprealm_reconnect_t::generate_test_instances(std::list<snaprealm_reconnect_t*>& ls)
 {
   ls.push_back(new snaprealm_reconnect_t);
   ls.back()->realm.ino = 0x10000000001ULL;
   ls.back()->realm.seq = 2;
   ls.back()->realm.parent = 1;
 }
-
-
-ostream& operator<<(ostream &out, const mds_role_t &role)
-{
-  out << role.fscid << ":" << role.rank;
-  return out;
-}
-