#define CEPH_MDS_PROTOCOL 9 /* cluster internal */
#define CEPH_MON_PROTOCOL 4 /* cluster internal */
#define CEPH_OSDC_PROTOCOL 19 /* public/client */
-#define CEPH_MDSC_PROTOCOL 24 /* public/client */
+#define CEPH_MDSC_PROTOCOL 25 /* public/client */
#define CEPH_MONC_PROTOCOL 14 /* public/client */
__le64 snap_follows;
__le32 snap_trace_len;
__le32 ttl_ms; /* for IMPORT op only */
+ __le64 client_tid; /* for FLUSH(SNAP) -> FLUSH(SNAP)_ACK */
/* authlock */
__le32 uid, gid, mode;
if (m->get_dirty()) {
ack = new MClientCaps(CEPH_CAP_OP_FLUSHSNAP_ACK, in->ino(), 0, 0, 0, 0, 0, m->get_dirty(), 0);
ack->set_snap_follows(follows);
+ ack->set_client_tid(m->get_client_tid());
}
if (!_do_cap_update(in, cap, m->get_dirty(), 0, follows, m, ack)) {
if (ack)
<< " seq " << m->get_seq() << " on " << *in << dendl;
ack = new MClientCaps(CEPH_CAP_OP_FLUSH_ACK, in->ino(), 0, cap->get_cap_id(), m->get_seq(),
m->get_caps(), 0, m->get_dirty(), 0);
+ ack->set_client_tid(m->get_client_tid());
}
int new_wanted = m->get_wanted() & head_in->get_caps_allowed_ever();
if (new_wanted != cap->wanted()) {
int get_migrate_seq() { return head.migrate_seq; }
int get_op() { return head.op; }
+ __u64 get_client_tid() { return head.client_tid; }
+ void set_client_tid(__u64 s) { head.client_tid = s; }
+
snapid_t get_snap_follows() { return snapid_t(head.snap_follows); }
void set_snap_follows(snapid_t s) { head.snap_follows = s; }