From: Greg Farnum Date: Mon, 4 Feb 2013 04:32:27 +0000 (-0800) Subject: mds: ESlaveUpdate more modernization for dencoder X-Git-Tag: v0.58~100^2~17 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1842f46191aee3b1f66abcad6857b6aabeb0226e;p=ceph.git mds: ESlaveUpdate more modernization for dencoder Signed-off-by: Greg Farnum --- diff --git a/src/mds/events/ESlaveUpdate.h b/src/mds/events/ESlaveUpdate.h index 77dcd28413a9..fd32486e8e26 100644 --- a/src/mds/events/ESlaveUpdate.h +++ b/src/mds/events/ESlaveUpdate.h @@ -115,7 +115,7 @@ public: __u8 op; // prepare, commit, abort __u8 origop; // link | rename - ESlaveUpdate() : LogEvent(EVENT_SLAVEUPDATE) { } + ESlaveUpdate() : LogEvent(EVENT_SLAVEUPDATE), master(0), op(0), origop(0) { } ESlaveUpdate(MDLog *mdlog, const char *s, metareqid_t ri, int mastermds, int o, int oo) : LogEvent(EVENT_SLAVEUPDATE), commit(mdlog), type(s), @@ -134,31 +134,10 @@ public: out << commit; } - void encode(bufferlist &bl) const { - ENCODE_START(3, 3, bl); - ::encode(stamp, bl); - ::encode(type, bl); - ::encode(reqid, bl); - ::encode(master, bl); - ::encode(op, bl); - ::encode(origop, bl); - ::encode(commit, bl); - ::encode(rollback, bl); - ENCODE_FINISH(bl); - } - void decode(bufferlist::iterator &bl) { - DECODE_START_LEGACY_COMPAT_LEN(3, 3, 3, bl); - if (struct_v >= 2) - ::decode(stamp, bl); - ::decode(type, bl); - ::decode(reqid, bl); - ::decode(master, bl); - ::decode(op, bl); - ::decode(origop, bl); - ::decode(commit, bl); - ::decode(rollback, 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); void replay(MDS *mds); }; diff --git a/src/mds/journal.cc b/src/mds/journal.cc index edd15b78845f..15abf0690ab1 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -1911,6 +1911,55 @@ void rename_rollback::generate_test_instances(list& ls) ls.back()->stray.remote_d_type = IFTODT(S_IFREG); } +void ESlaveUpdate::encode(bufferlist &bl) const +{ + ENCODE_START(3, 3, bl); + ::encode(stamp, bl); + ::encode(type, bl); + ::encode(reqid, bl); + ::encode(master, bl); + ::encode(op, bl); + ::encode(origop, bl); + ::encode(commit, bl); + ::encode(rollback, bl); + ENCODE_FINISH(bl); +} + +void ESlaveUpdate::decode(bufferlist::iterator &bl) +{ + DECODE_START_LEGACY_COMPAT_LEN(3, 3, 3, bl); + if (struct_v >= 2) + ::decode(stamp, bl); + ::decode(type, bl); + ::decode(reqid, bl); + ::decode(master, bl); + ::decode(op, bl); + ::decode(origop, bl); + ::decode(commit, bl); + ::decode(rollback, bl); + DECODE_FINISH(bl); +} + +void ESlaveUpdate::dump(Formatter *f) const +{ + f->open_object_section("metablob"); + commit.dump(f); + f->close_section(); // metablob + + f->dump_int("rollback length", rollback.length()); + f->dump_string("type", type); + f->dump_stream("metareqid") << reqid; + f->dump_int("master", master); + f->dump_int("op", op); + f->dump_int("original op", origop); +} + +void ESlaveUpdate::generate_test_instances(list& ls) +{ + ls.push_back(new ESlaveUpdate()); +} + + void ESlaveUpdate::replay(MDS *mds) { MDSlaveUpdate *su; diff --git a/src/test/encoding/types.h b/src/test/encoding/types.h index 507189cb9a95..4b8e091a352e 100644 --- a/src/test/encoding/types.h +++ b/src/test/encoding/types.h @@ -152,6 +152,7 @@ TYPE(link_rollback) TYPE(rmdir_rollback) TYPE(rename_rollback::drec) TYPE(rename_rollback) +TYPE(ESlaveUpdate) #ifdef WITH_RADOSGW