ldout(cct, 10) << "renew_caps mds." << session->mds_num << dendl;
session->last_cap_renew_request = ceph_clock_now();
uint64_t seq = ++session->cap_renew_seq;
- session->con->send_message2(make_message<MClientSession>(CEPH_SESSION_REQUEST_RENEWCAPS, seq));
+ auto m = make_message<MClientSession>(CEPH_SESSION_REQUEST_RENEWCAPS, seq);
+ m->oldest_client_tid = oldest_tid;
+ session->con->send_message2(std::move(m));
}
mds->locker->resume_stale_caps(session);
mds->sessionmap.touch_session(session);
}
+ trim_completed_request_list(m->oldest_client_tid, session);
auto reply = make_message<MClientSession>(CEPH_SESSION_RENEWCAPS, m->get_seq());
mds->send_message_client(reply, session);
} else {
class MClientSession final : public SafeMessage {
private:
- static constexpr int HEAD_VERSION = 6;
+ static constexpr int HEAD_VERSION = 7;
static constexpr int COMPAT_VERSION = 1;
public:
feature_bitset_t supported_features;
metric_spec_t metric_spec;
std::vector<MDSCapAuth> cap_auths;
+ ceph_tid_t oldest_client_tid = UINT64_MAX;
int get_op() const { return head.op; }
version_t get_seq() const { return head.seq; }
if (header.version >= 6) {
decode(cap_auths, p);
}
+ if (header.version >= 7) {
+ decode(oldest_client_tid, p);
+ }
}
void encode_payload(uint64_t features) override {
using ceph::encode;
encode(metric_spec, payload);
encode(flags, payload);
encode(cap_auths, payload);
+ encode(oldest_client_tid, payload);
}
}
private: