From: Greg Farnum Date: Wed, 24 Jun 2009 18:42:24 +0000 (-0700) Subject: Monitor/Message: All messages used by Paxos are now PaxosServiceMessages. X-Git-Tag: v0.10~164 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dd3ffaf0729d89df7403177026b848fc0fbe28f9;p=ceph.git Monitor/Message: All messages used by Paxos are now PaxosServiceMessages. --- diff --git a/src/ceph.cc b/src/ceph.cc index 585a48e2606a..167c01dd0852 100644 --- a/src/ceph.cc +++ b/src/ceph.cc @@ -284,7 +284,7 @@ void get_status(bool newmon) vcmd[0] = prefix[which]; vcmd[1] = "stat"; - MMonCommand *m = new MMonCommand(monmap.fsid); + MMonCommand *m = new MMonCommand(monmap.fsid, VERSION_T); m->cmd.swap(vcmd); messenger->send_message(m, monmap.get_inst(mon)); @@ -377,7 +377,7 @@ struct C_Resend : public Context { }; void send_command() { - MMonCommand *m = new MMonCommand(monmap.fsid); + MMonCommand *m = new MMonCommand(monmap.fsid, VERSION_T); m->cmd = pending_cmd; m->get_data() = pending_bl; diff --git a/src/common/LogClient.cc b/src/common/LogClient.cc index 039feb1c60df..4ed48723dcdd 100644 --- a/src/common/LogClient.cc +++ b/src/common/LogClient.cc @@ -77,7 +77,7 @@ void LogClient::_send_log() { if (log_queue.empty()) return; - MLog *log = new MLog(monmap->get_fsid(), log_queue); + MLog *log = new MLog(monmap->get_fsid(), log_queue, VERSION_T); int mon; if (messenger->get_myname().is_mon()) diff --git a/src/mds/SnapServer.cc b/src/mds/SnapServer.cc index e4d06cc9d50c..da42c911a4ae 100644 --- a/src/mds/SnapServer.cc +++ b/src/mds/SnapServer.cc @@ -248,7 +248,7 @@ void SnapServer::check_osd_map(bool force) if (!all_purge.empty()) { dout(10) << "requesting removal of " << all_purge << dendl; - MRemoveSnaps *m = new MRemoveSnaps(all_purge); + MRemoveSnaps *m = new MRemoveSnaps(all_purge, VERSION_T); int mon = mds->monmap->pick_mon(); mds->messenger->send_message(m, mds->monmap->get_inst(mon)); } diff --git a/src/messages/MClass.h b/src/messages/MClass.h index 01e87ad59a2d..ecd1314a8d45 100644 --- a/src/messages/MClass.h +++ b/src/messages/MClass.h @@ -16,6 +16,7 @@ #define __MCLASS_H #include "include/ClassLibrary.h" +#include "messages/PaxosServiceMessage.h" enum { CLASS_NOOP = 0, @@ -66,7 +67,7 @@ public: out << info.size() << " entries"; if (last) out << "last " << last; - out << ")"; + out << "v " << version << ")"; } void encode_payload() { diff --git a/src/messages/MClientMount.h b/src/messages/MClientMount.h index c97757c4977a..dbd8d40ce998 100644 --- a/src/messages/MClientMount.h +++ b/src/messages/MClientMount.h @@ -15,16 +15,21 @@ #ifndef __MCLIENTMOUNT_H #define __MCLIENTMOUNT_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" -class MClientMount : public Message { +class MClientMount : public PaxosServiceMessage { public: - MClientMount() : Message(CEPH_MSG_CLIENT_MOUNT) { } + MClientMount() : PaxosServiceMessage(CEPH_MSG_CLIENT_MOUNT, 0) { } const char *get_type_name() { return "client_mount"; } - void decode_payload() { } - void encode_payload() { } + void decode_payload() { + bufferlist::iterator p = payload.begin(); + paxos_decode(p); + } + void encode_payload() { + paxos_encode(); + } }; #endif diff --git a/src/messages/MClientUnmount.h b/src/messages/MClientUnmount.h index 4848a5bb8649..05a853f6dd66 100644 --- a/src/messages/MClientUnmount.h +++ b/src/messages/MClientUnmount.h @@ -15,16 +15,21 @@ #ifndef __MCLIENTUNMOUNT_H #define __MCLIENTUNMOUNT_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" -class MClientUnmount : public Message { +class MClientUnmount : public PaxosServiceMessage { public: - MClientUnmount() : Message(CEPH_MSG_CLIENT_UNMOUNT) { } + MClientUnmount() : PaxosServiceMessage(CEPH_MSG_CLIENT_UNMOUNT, 0) { } const char *get_type_name() { return "client_unmount"; } - void decode_payload() { } - void encode_payload() { } + void decode_payload() { + bufferlist::iterator p = payload.begin(); + paxos_decode(p); + } + void encode_payload() { + paxos_encode(); + } }; #endif diff --git a/src/messages/MLog.h b/src/messages/MLog.h index 5ffe7752ed8a..c47b75fc42e7 100644 --- a/src/messages/MLog.h +++ b/src/messages/MLog.h @@ -16,39 +16,35 @@ #define __MLOG_H #include "include/LogEntry.h" +#include "messages/PaxosServiceMessage.h" class MLog : public PaxosServiceMessage { public: ceph_fsid_t fsid; deque entries; - version_t last; MLog() : PaxosServiceMessage(MSG_LOG, 0) {} - MLog(ceph_fsid_t& f, deque& e) : PaxosServiceMessage(MSG_LOG, 0), fsid(f), entries(e), last(0) { } - MLog(ceph_fsid_t& f, version_t l) : PaxosServiceMessage(MSG_LOG, l), fsid(f), last(l) {} + MLog(ceph_fsid_t& f, deque& e, version_t v) : PaxosServiceMessage(MSG_LOG, v), fsid(f), entries(e) { } + MLog(ceph_fsid_t& f, version_t v) : PaxosServiceMessage(MSG_LOG, v), fsid(f) {} const char *get_type_name() { return "log"; } void print(ostream& out) { out << "log("; if (entries.size()) out << entries.size() << " entries"; - if (last) - out << "last " << last; - out << ")"; + out << "v " << version << ")"; } void encode_payload() { paxos_encode(); ::encode(fsid, payload); ::encode(entries, payload); - ::encode(last, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); paxos_decode(p); ::decode(fsid, p); ::decode(entries, p); - ::decode(last, p); } }; diff --git a/src/messages/MLogAck.h b/src/messages/MLogAck.h index ae188ff6893a..f4d4286e0728 100644 --- a/src/messages/MLogAck.h +++ b/src/messages/MLogAck.h @@ -16,15 +16,14 @@ #define __MLOGACK_H #include "include/LogEntry.h" -#include "messages/PaxosServiceMessage.h" -class MLogAck : public PaxosServiceMessage { +class MLogAck : public Message { public: ceph_fsid_t fsid; version_t last; - MLogAck() : PaxosServiceMessage(MSG_LOGACK, 0) {} - MLogAck(ceph_fsid_t& f, version_t l) : PaxosServiceMessage(MSG_LOGACK, l), fsid(f), last(l) {} + MLogAck() : Message(MSG_LOGACK) {} + MLogAck(ceph_fsid_t& f, version_t l) : Message(MSG_LOGACK), fsid(f), last(l) {} const char *get_type_name() { return "log_ack"; } void print(ostream& out) { @@ -32,13 +31,11 @@ public: } void encode_payload() { - paxos_encode(); ::encode(fsid, payload); ::encode(last, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); - paxos_decode(p); ::decode(fsid, p); ::decode(last, p); } diff --git a/src/messages/MMDSBeacon.h b/src/messages/MMDSBeacon.h index ce86c1ed8d87..0c10d178a038 100644 --- a/src/messages/MMDSBeacon.h +++ b/src/messages/MMDSBeacon.h @@ -51,7 +51,7 @@ class MMDSBeacon : public PaxosServiceMessage { void print(ostream& out) { out << "mdsbeacon(" << name << " " << ceph_mds_state_name(state) - << " seq " << seq << ")"; + << " seq " << seq << "v " << version << ")"; } void encode_payload() { diff --git a/src/messages/MMDSGetMap.h b/src/messages/MMDSGetMap.h index de39ec02a8f9..f811a8a3b81c 100644 --- a/src/messages/MMDSGetMap.h +++ b/src/messages/MMDSGetMap.h @@ -15,32 +15,34 @@ #ifndef __MMDSGETMAP_H #define __MMDSGETMAP_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" #include "include/types.h" -class MMDSGetMap : public Message { +class MMDSGetMap : public PaxosServiceMessage { public: ceph_fsid_t fsid; epoch_t want; - MMDSGetMap() {} + MMDSGetMap() : PaxosServiceMessage(CEPH_MSG_MDS_GETMAP, 0) {} MMDSGetMap(ceph_fsid_t &f, epoch_t w=0) : - Message(CEPH_MSG_MDS_GETMAP), + PaxosServiceMessage(CEPH_MSG_MDS_GETMAP, w-1), fsid(f), want(w) { } const char *get_type_name() { return "mds_getmap"; } void print(ostream& out) { - out << "mds_getmap(want " << want << ")"; + out << "mds_getmap(want " << want << "v " << version << ")"; } void encode_payload() { + paxos_encode(); ::encode(fsid, payload); ::encode(want, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(fsid, p); ::decode(want, p); } diff --git a/src/messages/MMonObserveNotify.h b/src/messages/MMonObserveNotify.h index 1300b85fe879..5497acb2aa98 100644 --- a/src/messages/MMonObserveNotify.h +++ b/src/messages/MMonObserveNotify.h @@ -35,7 +35,7 @@ class MMonObserveNotify : public PaxosServiceMessage { o << "mon_observe_notify(v" << ver << " " << bl.length() << " bytes"; if (is_latest) o << " latest"; - o << ")"; + o << "v " << version << ")"; } void encode_payload() { diff --git a/src/messages/MMonPaxos.h b/src/messages/MMonPaxos.h index 4c93aedf0c32..7a06d0492b60 100644 --- a/src/messages/MMonPaxos.h +++ b/src/messages/MMonPaxos.h @@ -16,10 +16,10 @@ #ifndef __MMONPAXOS_H #define __MMONPAXOS_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" #include "mon/mon_types.h" -class MMonPaxos : public Message { +class MMonPaxos : public PaxosServiceMessage { public: // op types const static int OP_COLLECT = 1; // proposer: propose round @@ -58,9 +58,9 @@ class MMonPaxos : public Message { map values; - MMonPaxos() : Message(MSG_MON_PAXOS) {} + MMonPaxos() : PaxosServiceMessage(MSG_MON_PAXOS, 0) {} MMonPaxos(epoch_t e, int o, int mid) : - Message(MSG_MON_PAXOS), + PaxosServiceMessage(MSG_MON_PAXOS, e), epoch(e), op(o), machine_id(mid), first_committed(0), last_committed(0), pn_from(0), pn(0), uncommitted_pn(0), @@ -76,10 +76,11 @@ class MMonPaxos : public Message { << " pn " << pn << " opn " << uncommitted_pn; if (latest_version) out << " latest " << latest_version << " (" << latest_value.length() << " bytes)"; - out << ")"; + out << "v " << version << ")"; } void encode_payload() { + paxos_encode(); ::encode(epoch, payload); ::encode(op, payload); ::encode(machine_id, payload); @@ -95,6 +96,7 @@ class MMonPaxos : public Message { } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(epoch, p); ::decode(op, p); ::decode(machine_id, p); diff --git a/src/messages/MOSDAlive.h b/src/messages/MOSDAlive.h index 1caeaf9ed6c8..b815d9cd5398 100644 --- a/src/messages/MOSDAlive.h +++ b/src/messages/MOSDAlive.h @@ -17,26 +17,28 @@ #ifndef __MOSDALIVE_H #define __MOSDALIVE_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" -class MOSDAlive : public Message { +class MOSDAlive : public PaxosServiceMessage { public: epoch_t map_epoch; - MOSDAlive(epoch_t e) : Message(MSG_OSD_ALIVE), map_epoch(e) { } - MOSDAlive() {} + MOSDAlive(epoch_t e) : PaxosServiceMessage(MSG_OSD_ALIVE, e), map_epoch(e) { } + MOSDAlive() : PaxosServiceMessage(MSG_OSD_ALIVE, 0) {} void encode_payload() { + paxos_encode(); ::encode(map_epoch, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(map_epoch, p); } const char *get_type_name() { return "osd_alive"; } void print(ostream &out) { - out << "osd_alive(" << map_epoch << ")"; + out << "osd_alive(" << map_epoch << "v " << version << ")"; } }; diff --git a/src/messages/MOSDBoot.h b/src/messages/MOSDBoot.h index 747a78f53c60..678a0842e5a9 100644 --- a/src/messages/MOSDBoot.h +++ b/src/messages/MOSDBoot.h @@ -15,7 +15,7 @@ #ifndef __MOSDBOOT_H #define __MOSDBOOT_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" #include "include/types.h" #include "osd/osd_types.h" @@ -25,20 +25,22 @@ class MOSDBoot : public PaxosServiceMessage { OSDSuperblock sb; MOSDBoot() : PaxosServiceMessage(){} - MOSDBoot(OSDSuperblock& s, version_t v) : - PaxosServiceMessage(MSG_OSD_BOOT, v), sb(s) { + MOSDBoot(OSDSuperblock& s) : + PaxosServiceMessage(MSG_OSD_BOOT, sb.current_epoch), sb(s) { } const char *get_type_name() { return "osd_boot"; } void print(ostream& out) { - out << "osd_boot(osd" << sb.whoami << ")"; + out << "osd_boot(osd" << sb.whoami << "v " << version << ")"; } void encode_payload() { + paxos_encode(); ::encode(sb, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(sb, p); } }; diff --git a/src/messages/MOSDFailure.h b/src/messages/MOSDFailure.h index cabe3bd71e71..434613690f72 100644 --- a/src/messages/MOSDFailure.h +++ b/src/messages/MOSDFailure.h @@ -16,18 +16,18 @@ #ifndef __MOSDFAILURE_H #define __MOSDFAILURE_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" -class MOSDFailure : public Message { +class MOSDFailure : public PaxosServiceMessage { public: ceph_fsid_t fsid; entity_inst_t failed; epoch_t epoch; - MOSDFailure() : Message(MSG_OSD_FAILURE) {} + MOSDFailure() : PaxosServiceMessage(MSG_OSD_FAILURE, 0) {} MOSDFailure(ceph_fsid_t &fs, entity_inst_t f, epoch_t e) : - Message(MSG_OSD_FAILURE), + PaxosServiceMessage(MSG_OSD_FAILURE, e), fsid(fs), failed(f), epoch(e) {} entity_inst_t get_failed() { return failed; } @@ -35,11 +35,13 @@ class MOSDFailure : public Message { void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(fsid, p); ::decode(failed, p); ::decode(epoch, p); } void encode_payload() { + paxos_encode(); ::encode(fsid, payload); ::encode(failed, payload); ::encode(epoch, payload); @@ -47,7 +49,7 @@ class MOSDFailure : public Message { const char *get_type_name() { return "osd_failure"; } void print(ostream& out) { - out << "osd_failure(" << failed << " e" << epoch << ")"; + out << "osd_failure(" << failed << " e" << epoch << "v " << version << ")"; } }; diff --git a/src/messages/MOSDGetMap.h b/src/messages/MOSDGetMap.h index 73c0a3c17bf5..63a2a7fc0650 100644 --- a/src/messages/MOSDGetMap.h +++ b/src/messages/MOSDGetMap.h @@ -15,18 +15,18 @@ #ifndef __MOSDGETMAP_H #define __MOSDGETMAP_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" #include "include/types.h" -class MOSDGetMap : public Message { +class MOSDGetMap : public PaxosServiceMessage { public: ceph_fsid_t fsid; epoch_t start; // this is the first incremental the sender wants (he has start-1) - MOSDGetMap() : Message(CEPH_MSG_OSD_GETMAP) {} + MOSDGetMap() : PaxosServiceMessage(CEPH_MSG_OSD_GETMAP, 0) {} MOSDGetMap(ceph_fsid_t& f, epoch_t s=0) : - Message(CEPH_MSG_OSD_GETMAP), + PaxosServiceMessage(CEPH_MSG_OSD_GETMAP, start-1), fsid(f), start(s) { } epoch_t get_start_epoch() { return start; } @@ -34,15 +34,17 @@ class MOSDGetMap : public Message { const char *get_type_name() { return "get_osd_map"; } void print(ostream& out) { out << "get_osd_map(start " << start; - out << ")"; + out << "v " << version << ")"; } void encode_payload() { + paxos_encode(); ::encode(fsid, payload); ::encode(start, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(fsid, p); ::decode(start, p); } diff --git a/src/messages/MOSDIn.h b/src/messages/MOSDIn.h index a2cd71b3c94d..f6782cabd180 100644 --- a/src/messages/MOSDIn.h +++ b/src/messages/MOSDIn.h @@ -17,22 +17,24 @@ #ifndef __MOSDIN_H #define __MOSDIN_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" -class MOSDIn : public Message { +class MOSDIn : public PaxosServiceMessage { public: epoch_t map_epoch; - MOSDIn(epoch_t e) : Message(MSG_OSD_IN), map_epoch(e) { + MOSDIn(epoch_t e) : PaxosServiceMessage(MSG_OSD_IN, e), map_epoch(e) { } MOSDIn() {} void encode_payload() { + paxos_encode(); ::encode(map_epoch, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(map_epoch, p); } diff --git a/src/messages/MOSDOut.h b/src/messages/MOSDOut.h index 4c4f7f1ddb3b..c35647748543 100644 --- a/src/messages/MOSDOut.h +++ b/src/messages/MOSDOut.h @@ -17,22 +17,24 @@ #ifndef __MOSDOUT_H #define __MOSDOUT_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" -class MOSDOut : public Message { +class MOSDOut : public PaxosServiceMessage { public: epoch_t map_epoch; - MOSDOut(epoch_t e) : Message(MSG_OSD_OUT), map_epoch(e) { + MOSDOut(epoch_t e) : PaxosServiceMessage(MSG_OSD_OUT, e), map_epoch(e) { } MOSDOut() {} void encode_payload() { + paxos_encode(); ::encode(map_epoch, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(map_epoch, p); } diff --git a/src/messages/MPGStats.h b/src/messages/MPGStats.h index a347e272e7a5..397528cb5bea 100644 --- a/src/messages/MPGStats.h +++ b/src/messages/MPGStats.h @@ -16,8 +16,9 @@ #define __MPGSTATS_H #include "osd/osd_types.h" +#include "messages/PaxosServiceMessage.h" -class MPGStats : public Message { +class MPGStats : public PaxosServiceMessage { public: ceph_fsid_t fsid; map pg_stat; @@ -25,16 +26,17 @@ public: epoch_t epoch; utime_t had_map_for; - MPGStats() : Message(MSG_PGSTATS) {} + MPGStats() : PaxosServiceMessage(MSG_PGSTATS, 0) {} MPGStats(ceph_fsid_t& f, epoch_t e, utime_t had) : - Message(MSG_PGSTATS), fsid(f), epoch(e), had_map_for(had) {} + PaxosServiceMessage(MSG_PGSTATS, e), fsid(f), epoch(e), had_map_for(had) {} const char *get_type_name() { return "pg_stats"; } void print(ostream& out) { - out << "pg_stats(" << pg_stat.size() << " pgs)"; + out << "pg_stats(" << pg_stat.size() << "v " << version << " pgs)"; } void encode_payload() { + paxos_encode(); ::encode(fsid, payload); ::encode(osd_stat, payload); ::encode(pg_stat, payload); @@ -43,6 +45,7 @@ public: } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(fsid, p); ::decode(osd_stat, p); ::decode(pg_stat, p); diff --git a/src/messages/MRemoveSnaps.h b/src/messages/MRemoveSnaps.h index 055cd53e8455..3edfaca8234a 100644 --- a/src/messages/MRemoveSnaps.h +++ b/src/messages/MRemoveSnaps.h @@ -15,28 +15,30 @@ #ifndef __MREMOVESNAPS_H #define __MREMOVESNAPS_H -#include "msg/Message.h" +#include "messages/PaxosServiceMessage.h" -struct MRemoveSnaps : public Message { +struct MRemoveSnaps : public PaxosServiceMessage { map > snaps; MRemoveSnaps() : - Message(MSG_REMOVE_SNAPS) { } - MRemoveSnaps(map >& s) : - Message(MSG_REMOVE_SNAPS) { + PaxosServiceMessage(MSG_REMOVE_SNAPS, 0) { } + MRemoveSnaps(map >& s, version_t v) : + PaxosServiceMessage(MSG_REMOVE_SNAPS, v) { snaps.swap(s); } const char *get_type_name() { return "remove_snaps"; } void print(ostream& out) { - out << "remove_snaps(" << snaps << ")"; + out << "remove_snaps(" << snaps << "v " << version << ")"; } void encode_payload() { + paxos_encode(); ::encode(snaps, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(snaps, p); assert(p.end()); } diff --git a/src/messages/MStatfs.h b/src/messages/MStatfs.h index 0e0bb2f425fa..3204cd872dfa 100644 --- a/src/messages/MStatfs.h +++ b/src/messages/MStatfs.h @@ -17,26 +17,30 @@ #define __MSTATFS_H #include /* or */ +#include "messages/PaxosServiceMessage.h" -class MStatfs : public Message { +class MStatfs : public PaxosServiceMessage { public: ceph_fsid_t fsid; tid_t tid; - MStatfs() : Message(CEPH_MSG_STATFS) {} - MStatfs(ceph_fsid_t& f, tid_t t) : Message(CEPH_MSG_STATFS), fsid(f), tid(t) {} + MStatfs() : PaxosServiceMessage(CEPH_MSG_STATFS, 0) {} + MStatfs(ceph_fsid_t& f, tid_t t, version_t v) : + PaxosServiceMessage(CEPH_MSG_STATFS, v), fsid(f), tid(t) {} const char *get_type_name() { return "statfs"; } void print(ostream& out) { - out << "statfs(" << tid << ")"; + out << "statfs(" << tid << "v " << version << ")"; } void encode_payload() { + paxos_encode(); ::encode(fsid, payload); ::encode(tid, payload); } void decode_payload() { bufferlist::iterator p = payload.begin(); + paxos_decode(p); ::decode(fsid, p); ::decode(tid, p); } diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 187f212f27c6..6d5fc7014fee 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -379,7 +379,7 @@ bool Monitor::dispatch_impl(Message *m) case CEPH_MSG_SHUTDOWN: if (m->get_source().is_osd()) - osdmon()->dispatch(m); + osdmon()->dispatch((PaxosServiceMessage*)m); else handle_shutdown(m); break; @@ -396,36 +396,36 @@ bool Monitor::dispatch_impl(Message *m) case MSG_OSD_OUT: case MSG_OSD_ALIVE: case MSG_REMOVE_SNAPS: - paxos_service[PAXOS_OSDMAP]->dispatch(m); + paxos_service[PAXOS_OSDMAP]->dispatch((PaxosServiceMessage*)m); break; // MDSs case MSG_MDS_BEACON: case CEPH_MSG_MDS_GETMAP: - paxos_service[PAXOS_MDSMAP]->dispatch(m); + paxos_service[PAXOS_MDSMAP]->dispatch((PaxosServiceMessage*)m); break; // clients case CEPH_MSG_CLIENT_MOUNT: case CEPH_MSG_CLIENT_UNMOUNT: - paxos_service[PAXOS_CLIENTMAP]->dispatch(m); + paxos_service[PAXOS_CLIENTMAP]->dispatch((PaxosServiceMessage*)m); break; // pg case CEPH_MSG_STATFS: case MSG_PGSTATS: case MSG_GETPOOLSTATS: - paxos_service[PAXOS_PGMAP]->dispatch(m); + paxos_service[PAXOS_PGMAP]->dispatch((PaxosServiceMessage*)m); break; case MSG_POOLSNAP: - paxos_service[PAXOS_OSDMAP]->dispatch(m); + paxos_service[PAXOS_OSDMAP]->dispatch((PaxosServiceMessage*)m); break; // log case MSG_LOG: - paxos_service[PAXOS_LOG]->dispatch(m); + paxos_service[PAXOS_LOG]->dispatch((PaxosServiceMessage*)m); break; // paxos @@ -444,7 +444,7 @@ bool Monitor::dispatch_impl(Message *m) // send it to the right paxos instance assert(pm->machine_id < PAXOS_NUM); Paxos *p = paxos[pm->machine_id]; - p->dispatch(m); + p->dispatch((PaxosServiceMessage*)m); // make sure service finds out about any state changes if (p->is_active()) @@ -497,7 +497,7 @@ void Monitor::handle_shutdown(Message *m) for (set::iterator it = ls.begin(); it != ls.end(); it++) { if (osdmon()->osdmap.is_down(*it)) continue; dout(10) << "sending shutdown to osd" << *it << dendl; - messenger->send_message(new MGenericMessage(CEPH_MSG_SHUTDOWN), + messenger->send_message(new PaxosServiceMessage(CEPH_MSG_SHUTDOWN, VERSION_T), osdmon()->osdmap.get_inst(*it)); } osdmon()->mark_all_down(); @@ -505,7 +505,7 @@ void Monitor::handle_shutdown(Message *m) // monitors too. for (unsigned i=0; isize(); i++) if ((int)i != whoami) - messenger->send_message(new MGenericMessage(CEPH_MSG_SHUTDOWN), + messenger->send_message(new PaxosServiceMessage(CEPH_MSG_SHUTDOWN, VERSION_T), monmap->get_inst(i)); } diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 4c49350428aa..8beccb6525c9 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -782,7 +782,7 @@ void Objecter::get_fs_stats(ceph_statfs& result, Context *onfinish) { void Objecter::fs_stats_submit(StatfsOp *op) { dout(10) << "fs_stats_submit" << op->tid << dendl; - MStatfs *m = new MStatfs(monmap->fsid, op->tid); + MStatfs *m = new MStatfs(monmap->fsid, op->tid, VERSION_T); int mon = monmap->pick_mon(); messenger->send_message(m, monmap->get_inst(mon)); op->last_submit = g_clock.now();