]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/mds/snap.cc
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / mds / snap.cc
index 3da4cda2b4b67c149f9fdbeacf8c302f874d885e..f988ca51367488a73708fd49f8a44b16cb788378 100644 (file)
 
 void SnapInfo::encode(bufferlist& bl) const
 {
-  ENCODE_START(2, 2, bl);
+  ENCODE_START(3, 2, bl);
   encode(snapid, bl);
   encode(ino, bl);
   encode(stamp, bl);
   encode(name, bl);
+  encode(metadata, bl);
   ENCODE_FINISH(bl);
 }
 
 void SnapInfo::decode(bufferlist::const_iterator& bl)
 {
-  DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl);
+  DECODE_START_LEGACY_COMPAT_LEN(3, 2, 2, bl);
   decode(snapid, bl);
   decode(ino, bl);
   decode(stamp, bl);
   decode(name, bl);
+  if (struct_v >= 3) {
+    decode(metadata, bl);
+  }
   DECODE_FINISH(bl);
 }
 
@@ -48,6 +52,11 @@ void SnapInfo::dump(Formatter *f) const
   f->dump_unsigned("ino", ino);
   f->dump_stream("stamp") << stamp;
   f->dump_string("name", name);
+  f->open_object_section("metadata");
+  for (auto &[key, value] : metadata) {
+    f->dump_string(key, value);
+  }
+  f->close_section();
 }
 
 void SnapInfo::generate_test_instances(std::list<SnapInfo*>& ls)
@@ -58,6 +67,7 @@ void SnapInfo::generate_test_instances(std::list<SnapInfo*>& ls)
   ls.back()->ino = 2;
   ls.back()->stamp = utime_t(3, 4);
   ls.back()->name = "foo";
+  ls.back()->metadata = {{"foo", "bar"}};
 }
 
 ostream& operator<<(ostream& out, const SnapInfo &sn)