]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd/osd_types: pool_opts_t: make encoding feature-dependent
authorSage Weil <sage@redhat.com>
Wed, 28 Nov 2018 22:11:25 +0000 (16:11 -0600)
committerSage Weil <sage@redhat.com>
Tue, 18 Dec 2018 19:30:54 +0000 (13:30 -0600)
No functional change (yet).

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/osd_types.cc
src/osd/osd_types.h

index 102c3a80dff4d7d941c607af34c250b3efb69fca..d89265d4919f5ec1312ab6de90be4932e9293c59 100644 (file)
@@ -1190,7 +1190,7 @@ void pool_opts_t::dump(Formatter* f) const
 class pool_opts_encoder_t : public boost::static_visitor<>
 {
 public:
-  explicit pool_opts_encoder_t(bufferlist& bl_) : bl(bl_) {}
+  explicit pool_opts_encoder_t(bufferlist& bl_, uint64_t features) : bl(bl_) {}
 
   void operator()(const std::string &s) const {
     encode(static_cast<int32_t>(pool_opts_t::STR), bl);
@@ -1209,18 +1209,20 @@ private:
   bufferlist& bl;
 };
 
-void pool_opts_t::encode(bufferlist& bl) const {
+void pool_opts_t::encode(bufferlist& bl, uint64_t features) const
+{
   ENCODE_START(1, 1, bl);
   uint32_t n = static_cast<uint32_t>(opts.size());
   encode(n, bl);
   for (opts_t::const_iterator i = opts.begin(); i != opts.end(); ++i) {
     encode(static_cast<int32_t>(i->first), bl);
-    boost::apply_visitor(pool_opts_encoder_t(bl), i->second);
+    boost::apply_visitor(pool_opts_encoder_t(bl, features), i->second);
   }
   ENCODE_FINISH(bl);
 }
 
-void pool_opts_t::decode(bufferlist::const_iterator& bl) {
+void pool_opts_t::decode(bufferlist::const_iterator& bl)
+{
   DECODE_START(1, bl);
   __u32 n;
   decode(n, bl);
@@ -1776,7 +1778,7 @@ void pg_pool_t::encode(bufferlist& bl, uint64_t features) const
     encode(hit_set_search_last_n, bl);
   }
   if (v >= 24) {
-    encode(opts, bl);
+    encode(opts, bl, features);
   }
   if (v >= 25) {
     encode(last_force_op_resend_prenautilus, bl);
index 3b48e4d567ef0f06f95eff3d65147dcb93383ae2..6f34202d5053640ce8cf38b58f1aea86b9e46430 100644 (file)
@@ -1061,7 +1061,7 @@ public:
   void dump(const std::string& name, Formatter *f) const;
 
   void dump(Formatter *f) const;
-  void encode(bufferlist &bl) const;
+  void encode(bufferlist &bl, uint64_t features) const;
   void decode(bufferlist::const_iterator &bl);
 
 private:
@@ -1070,7 +1070,7 @@ private:
 
   friend ostream& operator<<(ostream& out, const pool_opts_t& opts);
 };
-WRITE_CLASS_ENCODER(pool_opts_t)
+WRITE_CLASS_ENCODER_FEATURES(pool_opts_t)
 
 /*
  * pg_pool