From: Greg Farnum Date: Mon, 4 Feb 2013 02:19:15 +0000 (-0800) Subject: mds: rmdir_rollback more modernization for dencoder X-Git-Tag: v0.58~100^2~19 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=85c67fe85c743f246c03c93d75e5a0bef598990d;p=ceph.git mds: rmdir_rollback more modernization for dencoder Signed-off-by: Greg Farnum --- diff --git a/src/mds/events/ESlaveUpdate.h b/src/mds/events/ESlaveUpdate.h index f05872535d1d..db5ccac537e3 100644 --- a/src/mds/events/ESlaveUpdate.h +++ b/src/mds/events/ESlaveUpdate.h @@ -53,24 +53,10 @@ struct rmdir_rollback { dirfrag_t dest_dir; string dest_dname; - void encode(bufferlist& bl) const { - ENCODE_START(2, 2, bl); - ::encode(reqid, bl); - ::encode(src_dir, bl); - ::encode(src_dname, bl); - ::encode(dest_dir, bl); - ::encode(dest_dname, bl); - ENCODE_FINISH(bl); - } - void decode(bufferlist::iterator& bl) { - DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl); - ::decode(reqid, bl); - ::decode(src_dir, bl); - ::decode(src_dname, bl); - ::decode(dest_dir, bl); - ::decode(dest_dname, bl); - DECODE_FINISH(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(rmdir_rollback) diff --git a/src/mds/journal.cc b/src/mds/journal.cc index f15d5c857ec3..bbbc3014611e 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -1772,6 +1772,42 @@ void link_rollback::generate_test_instances(list& ls) ls.push_back(new link_rollback()); } +void rmdir_rollback::encode(bufferlist& bl) const +{ + ENCODE_START(2, 2, bl); + ::encode(reqid, bl); + ::encode(src_dir, bl); + ::encode(src_dname, bl); + ::encode(dest_dir, bl); + ::encode(dest_dname, bl); + ENCODE_FINISH(bl); +} + +void rmdir_rollback::decode(bufferlist::iterator& bl) +{ + DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl); + ::decode(reqid, bl); + ::decode(src_dir, bl); + ::decode(src_dname, bl); + ::decode(dest_dir, bl); + ::decode(dest_dname, bl); + DECODE_FINISH(bl); +} + +void rmdir_rollback::dump(Formatter *f) const +{ + f->dump_stream("metareqid") << reqid; + f->dump_stream("source directory") << src_dir; + f->dump_string("source dname", src_dname); + f->dump_stream("destination directory") << dest_dir; + f->dump_string("destination dname", dest_dname); +} + +void rmdir_rollback::generate_test_instances(list& ls) +{ + ls.push_back(new rmdir_rollback()); +} + void ESlaveUpdate::replay(MDS *mds) { diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index cb584f162c70..00a9d090e730 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -149,7 +149,7 @@ TYPE(ESession) TYPE(ESessions) #include "mds/events/ESlaveUpdate.h" TYPE(link_rollback) - +TYPE(rmdir_rollback) #ifdef WITH_RADOSGW