From: Sage Weil Date: Tue, 1 Apr 2008 04:20:02 +0000 (-0700) Subject: kclient: lease messages increment mds session seq X-Git-Tag: v0.2~235^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f626b9c9e29a2cd79c4529396119cf3f482715c5;p=ceph.git kclient: lease messages increment mds session seq --- diff --git a/src/kernel/mds_client.c b/src/kernel/mds_client.c index e56dc25d565..db130bc39db 100644 --- a/src/kernel/mds_client.c +++ b/src/kernel/mds_client.c @@ -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