]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: lease messages increment mds session seq
authorSage Weil <sage@newdream.net>
Tue, 1 Apr 2008 04:20:02 +0000 (21:20 -0700)
committerSage Weil <sage@newdream.net>
Tue, 1 Apr 2008 13:32:23 +0000 (06:32 -0700)
src/kernel/mds_client.c

index e56dc25d56558e89ae2ee9410a0964052a3bc625..db130bc39dbabe6cc77eb6e68c80eadb4f2c55b0 100644 (file)
@@ -1388,6 +1388,7 @@ void ceph_mdsc_handle_lease(struct ceph_mds_client *mdsc, struct ceph_msg *msg)
 {
        struct super_block *sb = mdsc->client->sb;
        struct inode *inode;
+       struct ceph_mds_session *session;
        struct ceph_inode_info *ci;
        struct dentry *parent, *dentry;
        int mds = le32_to_cpu(msg->hdr.src.name.num);
@@ -1407,6 +1408,14 @@ void ceph_mdsc_handle_lease(struct ceph_mds_client *mdsc, struct ceph_msg *msg)
        dname.name = (void *)(h + 1);
        dname.len = msg->front.iov_len - sizeof(*h) - sizeof(__u32);
 
+       /* find session */
+       session = __get_session(mdsc, mds);
+       if (!session) {
+               dout(10, "WTF, got lease but no session for mds%d\n", mds);
+               return;
+       }
+       session->s_cap_seq++;
+
        /* lookup inode */
        inot = ceph_ino_to_ino(ino);
 #if BITS_PER_LONG == 64