]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: add tid to cap flush/flushsnap ops
authorSage Weil <sage@newdream.net>
Thu, 9 Jul 2009 22:35:22 +0000 (15:35 -0700)
committerSage Weil <sage@newdream.net>
Thu, 9 Jul 2009 22:35:22 +0000 (15:35 -0700)
And include in the ACK.

src/include/ceph_fs.h
src/mds/Locker.cc
src/messages/MClientCaps.h

index a01e1660adca772ce63f06dfcc2d0eb635353846..5469eaf6f2cb7760398ffad5920557c848ef8e66 100644 (file)
@@ -27,7 +27,7 @@
 #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 */
 
 
@@ -802,6 +802,7 @@ struct ceph_mds_caps {
        __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;
index a8c4882d683d1b752711de2ef768be0c557ea925..3183a7e76acc25c624ddab037d151caf4bee7275 100644 (file)
@@ -1649,6 +1649,7 @@ void Locker::handle_client_caps(MClientCaps *m)
       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)
@@ -1680,6 +1681,7 @@ void Locker::handle_client_caps(MClientCaps *m)
                << " 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()) {
index 64e30855af766d6ac68d8d477c717ff8291ed4cd..a39b098ad46226fdea1000d7183f3fec9580664b 100644 (file)
@@ -49,6 +49,9 @@ class MClientCaps : public Message {
   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; }