#include "msg/Message.h"
struct MClientMountAck : public Message {
- __s64 client;
+ client_t client;
__s32 result;
cstring result_msg;
bufferlist monmap_bl;
- MClientMountAck(__s64 c = -1, int r = 0, const char *msg = 0) :
+ MClientMountAck(client_t c = -1, int r = 0, const char *msg = 0) :
Message(CEPH_MSG_CLIENT_MOUNT_ACK),
client(c), result(r),
result_msg(msg) { }
class ClientMap {
public:
version_t version;
- __u64 next_client;
+ client_t next_client;
ClientMap() : version(0), next_client(0) {}
case CEPH_MSG_CLIENT_MOUNT:
{
entity_addr_t addr = m->get_orig_source_addr();
- __s64 client = ++pending_map.next_client;
+ client_t client = pending_map.next_client;
+ pending_map.next_client.v++;
+
dout(10) << "mount: assigned client" << client << " to " << addr << dendl;
paxos->wait_for_commit(new C_Mounted(this, client, (MClientMount*)m));
// MOUNT
-void ClientMonitor::_mounted(__s64 client, MClientMount *m)
+void ClientMonitor::_mounted(client_t client, MClientMount *m)
{
entity_inst_t to;
to.addr = m->get_orig_source_addr();
- to.name = entity_name_t::CLIENT(client);
+ to.name = entity_name_t::CLIENT(client.v);
dout(10) << "_mounted client" << client << " at " << to << dendl;
class C_Mounted : public Context {
ClientMonitor *cmon;
- __s64 client;
+ client_t client;
MClientMount *m;
public:
- C_Mounted(ClientMonitor *cm, __s64 c, MClientMount *m_) :
+ C_Mounted(ClientMonitor *cm, client_t c, MClientMount *m_) :
cmon(cm), client(c), m(m_) {}
void finish(int r) {
if (r >= 0)
void committed();
bool check_mount(MClientMount *m);
- void _mounted(__s64 c, MClientMount *m);
+ void _mounted(client_t c, MClientMount *m);
bool preprocess_query(PaxosServiceMessage *m); // true if processed.
bool prepare_update(PaxosServiceMessage *m);
bufferlist::iterator p = m->monmap_bl.begin();
::decode(monmap, p);
- messenger->set_myname(entity_name_t::CLIENT(m->client));
+ messenger->set_myname(entity_name_t::CLIENT(m->client.v));
// finish.
timer.cancel_event(mount_timeout_event);