From 6ec8870d08705d4b49b207c1648fd3426444555e Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Sat, 24 Apr 2010 10:10:00 -0700 Subject: [PATCH] poolop: rename and move definitions to ceph_fs.h This was done so that we can use it in the kclient --- src/include/ceph_fs.h | 41 +++++++++++++++++++++++++++++++++++++ src/include/ceph_strings.cc | 21 +++++++++++++++++++ src/librados.cc | 2 +- src/messages/MPoolOp.h | 39 ++++++----------------------------- src/messages/MPoolOpReply.h | 8 ++++---- src/mon/Monitor.cc | 2 +- src/mon/OSDMonitor.cc | 4 ++-- src/msg/Message.cc | 4 ++-- src/msg/Message.h | 4 ++-- src/osdc/Objecter.cc | 4 ++-- 10 files changed, 82 insertions(+), 47 deletions(-) diff --git a/src/include/ceph_fs.h b/src/include/ceph_fs.h index b872fb0ca5b4b..83fb38b9b15d0 100644 --- a/src/include/ceph_fs.h +++ b/src/include/ceph_fs.h @@ -139,11 +139,27 @@ int ceph_file_layout_is_valid(const struct ceph_file_layout *layout); #define CEPH_MSG_CLIENT_SNAP 0x312 #define CEPH_MSG_CLIENT_CAPRELEASE 0x313 +/* pool ops */ +#define CEPH_MSG_POOLOP_REPLY 48 +#define CEPH_MSG_POOLOP 49 + + /* osd */ #define CEPH_MSG_OSD_MAP 41 #define CEPH_MSG_OSD_OP 42 #define CEPH_MSG_OSD_OPREPLY 43 +/* pool operations */ +enum { + POOL_OP_CREATE = 0x01, + POOL_OP_DELETE = 0x02, + POOL_OP_AUID_CHANGE = 0x03, + POOL_OP_CREATE_SNAP = 0x11, + POOL_OP_DELETE_SNAP = 0x12, + POOL_OP_CREATE_UNMANAGED_SNAP = 0x21, + POOL_OP_DELETE_UNMANAGED_SNAP = 0x22, +}; + struct ceph_mon_request_header { __le64 have_version; __le16 session_mon; @@ -166,6 +182,31 @@ struct ceph_mon_statfs_reply { struct ceph_statfs st; } __attribute__ ((packed)); +const char *ceph_pool_op_name(int op); + +struct ceph_mon_poolop { + struct ceph_mon_request_header monhdr; + struct ceph_fsid fsid; + __le32 pool; + __le32 op; + __le64 auid; + __le64 snapid; + __le32 name_len; +} __attribute__ ((packed)); + +struct ceph_mon_poolop_reply { + struct ceph_mon_request_header monhdr; + struct ceph_fsid fsid; + __le32 reply_code; + __le32 epoch; + char has_data; + char data[0]; +} __attribute__ ((packed)); + +struct ceph_mon_unmanaged_snap { + __le64 snapid; +} __attribute__ ((packed)); + struct ceph_osd_getmap { struct ceph_mon_request_header monhdr; struct ceph_fsid fsid; diff --git a/src/include/ceph_strings.cc b/src/include/ceph_strings.cc index 76b11b54e1e8d..c316b577979e4 100644 --- a/src/include/ceph_strings.cc +++ b/src/include/ceph_strings.cc @@ -173,3 +173,24 @@ const char *ceph_snap_op_name(int o) } return "???"; } + +const char *ceph_pool_op_name(int op) { + switch (op) { + case POOL_OP_CREATE: + return "create pool"; + case POOL_OP_DELETE: + return "delete pool"; + case POOL_OP_AUID_CHANGE: + return "change auid"; + case POOL_OP_CREATE_SNAP: + return "create snap"; + case POOL_OP_DELETE_SNAP: + return "delete snap"; + case POOL_OP_CREATE_UNMANAGED_SNAP: + return "create unmanaged snap"; + case POOL_OP_DELETE_UNMANAGED_SNAP: + return "delete unmanaged snap"; + default: + return "unknown"; + } +} diff --git a/src/librados.cc b/src/librados.cc index c8486fdfff8ce..d5b735dc22e73 100644 --- a/src/librados.cc +++ b/src/librados.cc @@ -422,7 +422,7 @@ bool RadosClient::_dispatch(Message *m) objecter->handle_fs_stats_reply((MStatfsReply*)m); break; - case MSG_POOLOPREPLY: + case CEPH_MSG_POOLOP_REPLY: objecter->handle_pool_op_reply((MPoolOpReply*)m); break; default: diff --git a/src/messages/MPoolOp.h b/src/messages/MPoolOp.h index c3a8e84dd8adf..8c15580dde9ef 100644 --- a/src/messages/MPoolOp.h +++ b/src/messages/MPoolOp.h @@ -18,51 +18,24 @@ #include "messages/PaxosServiceMessage.h" -enum { - POOL_OP_CREATE, - POOL_OP_DELETE, - POOL_OP_CREATE_SNAP, - POOL_OP_DELETE_SNAP, - POOL_OP_CREATE_UNMANAGED_SNAP, - POOL_OP_DELETE_UNMANAGED_SNAP, - POOL_OP_AUID_CHANGE -}; - -static const char *get_pool_op_name(int op) { - switch (op) { - case POOL_OP_CREATE: - return "create pool"; - case POOL_OP_DELETE: - return "delete pool"; - case POOL_OP_CREATE_SNAP: - return "create snap"; - case POOL_OP_DELETE_SNAP: - return "delete snap"; - case POOL_OP_AUID_CHANGE: - return "change auid"; - default: - return "unknown"; - } -} - class MPoolOp : public PaxosServiceMessage { public: ceph_fsid_t fsid; - int pool; + __u32 pool; string name; - int op; + __u32 op; __u64 auid; snapid_t snapid; - MPoolOp() : PaxosServiceMessage(MSG_POOLOP, 0) {} + MPoolOp() : PaxosServiceMessage(CEPH_MSG_POOLOP, 0) {} MPoolOp(const ceph_fsid_t& f, tid_t t, int p, string& n, int o, version_t v) : - PaxosServiceMessage(MSG_POOLOP, v), fsid(f), pool(p), name(n), op(o), + PaxosServiceMessage(CEPH_MSG_POOLOP, v), fsid(f), pool(p), name(n), op(o), auid(0), snapid(0) { set_tid(t); } MPoolOp(const ceph_fsid_t& f, tid_t t, int p, string& n, int o, __u64 uid, version_t v) : - PaxosServiceMessage(MSG_POOLOP, v), fsid(f), pool(p), name(n), op(o), + PaxosServiceMessage(CEPH_MSG_POOLOP, v), fsid(f), pool(p), name(n), op(o), auid(uid), snapid(0) { set_tid(t); } @@ -73,7 +46,7 @@ private: public: const char *get_type_name() { return "poolop"; } void print(ostream& out) { - out << "poolop(" << get_pool_op_name(op) << ",pool " << pool + out << "poolop(" << ceph_pool_op_name(op) << ",pool " << pool << ",auid " << auid << ", tid" << get_tid() << " " << name << " v" << version << ")"; } diff --git a/src/messages/MPoolOpReply.h b/src/messages/MPoolOpReply.h index bee41afe5b56f..f2f9b828f861f 100644 --- a/src/messages/MPoolOpReply.h +++ b/src/messages/MPoolOpReply.h @@ -19,22 +19,22 @@ class MPoolOpReply : public PaxosServiceMessage { public: ceph_fsid_t fsid; - int replyCode; + __u32 replyCode; epoch_t epoch; bufferlist *response_data; //Once you pass in a response_data pointer it becomes the responsibility // of the Message. Don't delete it! (This reduces memory copies.) - MPoolOpReply() : PaxosServiceMessage(MSG_POOLOPREPLY, 0), response_data(NULL) + MPoolOpReply() : PaxosServiceMessage(CEPH_MSG_POOLOP_REPLY, 0), response_data(NULL) {} MPoolOpReply( ceph_fsid_t& f, tid_t t, int rc, int e, version_t v) : - PaxosServiceMessage(MSG_POOLOPREPLY, v), fsid(f), replyCode(rc), + PaxosServiceMessage(CEPH_MSG_POOLOP_REPLY, v), fsid(f), replyCode(rc), epoch(e), response_data(NULL) { set_tid(t); } MPoolOpReply( ceph_fsid_t& f, tid_t t, int rc, int e, version_t v, bufferlist *blp) : - PaxosServiceMessage(MSG_POOLOPREPLY, v), fsid(f), replyCode(rc), + PaxosServiceMessage(CEPH_MSG_POOLOP_REPLY, v), fsid(f), replyCode(rc), epoch(e), response_data(blp) { set_tid(t); } diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index 5c692517cd933..233e0794f088d 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -665,7 +665,7 @@ bool Monitor::_ms_dispatch(Message *m) paxos_service[PAXOS_PGMAP]->dispatch((PaxosServiceMessage*)m); break; - case MSG_POOLOP: + case CEPH_MSG_POOLOP: paxos_service[PAXOS_OSDMAP]->dispatch((PaxosServiceMessage*)m); break; diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 18bd200d59f68..45b8f38514330 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -210,7 +210,7 @@ bool OSDMonitor::preprocess_query(PaxosServiceMessage *m) case MSG_OSD_PGTEMP: return preprocess_pgtemp((MOSDPGTemp*)m); - case MSG_POOLOP: + case CEPH_MSG_POOLOP: return preprocess_pool_op((MPoolOp*)m); case MSG_REMOVE_SNAPS: @@ -241,7 +241,7 @@ bool OSDMonitor::prepare_update(PaxosServiceMessage *m) case MSG_MON_COMMAND: return prepare_command((MMonCommand*)m); - case MSG_POOLOP: + case CEPH_MSG_POOLOP: return prepare_pool_op((MPoolOp*)m); case MSG_REMOVE_SNAPS: diff --git a/src/msg/Message.cc b/src/msg/Message.cc index 9d68136e628dc..feb3d81b662a6 100644 --- a/src/msg/Message.cc +++ b/src/msg/Message.cc @@ -201,10 +201,10 @@ Message *decode_message(ceph_msg_header& header, ceph_msg_footer& footer, case MSG_GETPOOLSTATSREPLY: m = new MGetPoolStatsReply; break; - case MSG_POOLOP: + case CEPH_MSG_POOLOP: m = new MPoolOp; break; - case MSG_POOLOPREPLY: + case CEPH_MSG_POOLOP_REPLY: m = new MPoolOpReply; break; case MSG_MON_COMMAND: diff --git a/src/msg/Message.h b/src/msg/Message.h index e166b027685f3..0abfc937e1da8 100644 --- a/src/msg/Message.h +++ b/src/msg/Message.h @@ -38,8 +38,8 @@ #define MSG_MON_GLOBAL_ID 60 -#define MSG_POOLOP 49 -#define MSG_POOLOPREPLY 48 +// #define MSG_POOLOP 49 +// #define MSG_POOLOPREPLY 48 #define MSG_ROUTE 47 #define MSG_FORWARD 46 diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index baeef64295760..99973bfe1863b 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -80,7 +80,7 @@ void Objecter::dispatch(Message *m) handle_fs_stats_reply((MStatfsReply*)m); break; - case MSG_POOLOPREPLY: + case CEPH_MSG_POOLOP_REPLY: handle_pool_op_reply((MPoolOpReply*)m); break; @@ -821,7 +821,7 @@ void Objecter::handle_pool_op_reply(MPoolOpReply *m) tid_t tid = m->get_tid(); if (op_pool.count(tid)) { PoolOp *op = op_pool[tid]; - dout(10) << "have request " << tid << " at " << op << " Op: " << get_pool_op_name(op->pool_op) << dendl; + dout(10) << "have request " << tid << " at " << op << " Op: " << ceph_pool_op_name(op->pool_op) << dendl; if (op->blp) { op->blp->claim(*m->response_data); m->response_data = NULL; -- 2.39.5