dout(10, " adding cap %p on ino %lx\n", cap, ci->vfs_inode.i_ino);
ceph_encode_64(&p, end, ci->vfs_inode.i_ino);
rec = p;
- BUG_ON(p + sizeof(*rec) > end);
+ p += sizeof(*rec);
+ BUG_ON(p > end);
rec->wanted = cpu_to_le32(ceph_caps_wanted(ci));
rec->issued = cpu_to_le32(ceph_caps_issued(ci));
rec->size = cpu_to_le64(ci->i_wr_size);
dout(5, "accepted connection \n");
new_con->in_tag = CEPH_MSGR_TAG_READY;
+ new_con->connect_seq = 1;
set_bit(ACCEPTING, &new_con->state);
clear_bit(NEW,&new_con->state);
prepare_write_accept_announce(msgr, new_con);
void SessionMap::_load_finish(bufferlist &bl)
{
bufferlist::iterator blp = bl.begin();
- decode(blp);
+ decode(blp); // note: this sets last_cap_renew = now()
dout(10) << "_load_finish v " << version
<< ", " << session_map.size() << " sessions, "
<< bl.length() << " bytes"
void SessionMap::decode(bufferlist::iterator& p)
{
+ utime_t now = g_clock.now();
+
::_decode_simple(version, p);
__u32 n;
::_decode_simple(n, p);
Session *s = new Session;
s->_decode(p);
session_map[s->inst.name] = s;
+ s->last_cap_renew = now;
}
}
assert(mds->sessionmap.version == cmapv);
if (open) {
Session *session = mds->sessionmap.get_or_add_session(client_inst);
+ session->last_cap_renew = g_clock.now();
mds->sessionmap.set_state(session, Session::STATE_OPEN);
} else {
Session *session = mds->sessionmap.get_session(client_inst.name);
#!/bin/sh
+rm core*
./stop.sh
./mkmonmap `host \`hostname -f\`|cut -d ' ' -f 4`:12345 # your IP here; any unused port will do
./cmon --mkfs --mon 0 &