From: Greg Farnum Date: Thu, 17 Jan 2013 18:27:49 +0000 (-0800) Subject: mds: nest_info_t now uses modern encoding X-Git-Tag: v0.58~100^2~68 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9cf9c54cdacf65c4d32cc44b77ceccb3b04b4d4c;p=ceph.git mds: nest_info_t now uses modern encoding Signed-off-by: Sage Weil Signed-off-by: Greg Farnum --- diff --git a/src/mds/mdstypes.cc b/src/mds/mdstypes.cc index 37c686c6260..cb8a69e8197 100644 --- a/src/mds/mdstypes.cc +++ b/src/mds/mdstypes.cc @@ -109,3 +109,76 @@ ostream& operator<<(ostream &out, const frag_info_t &f) } +/* + * nest_info_t + */ + +void nest_info_t::encode(bufferlist &bl) const +{ + ENCODE_START(2, 2, bl); + ::encode(version, bl); + ::encode(rbytes, bl); + ::encode(rfiles, bl); + ::encode(rsubdirs, bl); + ::encode(ranchors, bl); + ::encode(rsnaprealms, bl); + ::encode(rctime, bl); + ENCODE_FINISH(bl); +} + +void nest_info_t::decode(bufferlist::iterator &bl) +{ + DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl); + ::decode(version, bl); + ::decode(rbytes, bl); + ::decode(rfiles, bl); + ::decode(rsubdirs, bl); + ::decode(ranchors, bl); + ::decode(rsnaprealms, bl); + ::decode(rctime, bl); + DECODE_FINISH(bl); +} + +void nest_info_t::dump(Formatter *f) const +{ + f->dump_unsigned("version", version); + f->dump_unsigned("rbytes", rbytes); + f->dump_unsigned("rfiles", rfiles); + f->dump_unsigned("rsubdirs", rsubdirs); + f->dump_unsigned("ranchors", ranchors); + f->dump_unsigned("rsnaprealms", rsnaprealms); + f->dump_stream("rctime") << rctime; +} + +void nest_info_t::generate_test_instances(list& ls) +{ + ls.push_back(new nest_info_t); + ls.push_back(new nest_info_t); + ls.back()->version = 1; + ls.back()->rbytes = 2; + ls.back()->rfiles = 3; + ls.back()->rsubdirs = 4; + ls.back()->ranchors = 5; + ls.back()->rsnaprealms = 6; + ls.back()->rctime = utime_t(7, 8); +} + +ostream& operator<<(ostream &out, const nest_info_t &n) +{ + if (n == nest_info_t()) + return out << "n()"; + out << "n(v" << n.version; + if (n.rctime != utime_t()) + out << " rc" << n.rctime; + if (n.rbytes) + out << " b" << n.rbytes; + if (n.ranchors) + out << " a" << n.ranchors; + if (n.rsnaprealms) + out << " sr" << n.rsnaprealms; + if (n.rfiles || n.rsubdirs) + out << " " << n.rsize() << "=" << n.rfiles << "+" << n.rsubdirs; + out << ")"; + return out; +} + diff --git a/src/mds/mdstypes.h b/src/mds/mdstypes.h index a6bf6d59321..8cce66f9a69 100644 --- a/src/mds/mdstypes.h +++ b/src/mds/mdstypes.h @@ -219,30 +219,10 @@ struct nest_info_t : public scatter_info_t { rsnaprealms += cur.rsnaprealms - acc.rsnaprealms; } - void encode(bufferlist &bl) const { - __u8 v = 1; - ::encode(v, bl); - - ::encode(version, bl); - ::encode(rbytes, bl); - ::encode(rfiles, bl); - ::encode(rsubdirs, bl); - ::encode(ranchors, bl); - ::encode(rsnaprealms, bl); - ::encode(rctime, bl); - } - void decode(bufferlist::iterator &bl) { - __u8 v; - ::decode(v, bl); - - ::decode(version, bl); - ::decode(rbytes, bl); - ::decode(rfiles, bl); - ::decode(rsubdirs, bl); - ::decode(ranchors, bl); - ::decode(rsnaprealms, bl); - ::decode(rctime, bl); - } + void encode(bufferlist &bl) const; + void decode(bufferlist::iterator& bl); + void dump(Formatter *f) const; + static void generate_test_instances(list& ls); }; WRITE_CLASS_ENCODER(nest_info_t) @@ -250,23 +230,8 @@ inline bool operator==(const nest_info_t &l, const nest_info_t &r) { return memcmp(&l, &r, sizeof(l)) == 0; } -inline ostream& operator<<(ostream &out, const nest_info_t &n) { - if (n == nest_info_t()) - return out << "n()"; - out << "n(v" << n.version; - if (n.rctime != utime_t()) - out << " rc" << n.rctime; - if (n.rbytes) - out << " b" << n.rbytes; - if (n.ranchors) - out << " a" << n.ranchors; - if (n.rsnaprealms) - out << " sr" << n.rsnaprealms; - if (n.rfiles || n.rsubdirs) - out << " " << n.rsize() << "=" << n.rfiles << "+" << n.rsubdirs; - out << ")"; - return out; -} +ostream& operator<<(ostream &out, const nest_info_t &n); + struct vinodeno_t { inodeno_t ino; diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index b49210f0699..28940f79962 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -99,6 +99,7 @@ TYPE(sr_t)*/ #include "mds/mdstypes.h" TYPE(file_layout_policy_t) TYPE(frag_info_t) +TYPE(nest_info_t) #ifdef WITH_RADOSGW