aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2011-07-26 14:28:25 -0400
committerSage Weil <sage@newdream.net>2011-07-26 14:28:25 -0400
commit2f90b852e3ae73889d7f6de6ecf429b9b6a6b103 (patch)
tree584e53ef3a6919e68ee0d8804da8f3d63838a3fc /fs/ceph
parent468640e32c7f6bfdaaa011095cc388786755d159 (diff)
ceph: ignore lease mask
The lease mask is no longer used (and it changed a while back). Instead, use a non-zero duration to indicate that there is a lease being issued. Reviewed-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph')
-rw-r--r--fs/ceph/inode.c10
-rw-r--r--fs/ceph/mds_client.c18
-rw-r--r--fs/ceph/mds_client.h2
3 files changed, 12 insertions, 18 deletions
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index d8858e96ab18..f51e873e966f 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -805,14 +805,14 @@ static void update_dentry_lease(struct dentry *dentry,
805 return; 805 return;
806 806
807 spin_lock(&dentry->d_lock); 807 spin_lock(&dentry->d_lock);
808 dout("update_dentry_lease %p mask %d duration %lu ms ttl %lu\n", 808 dout("update_dentry_lease %p duration %lu ms ttl %lu\n",
809 dentry, le16_to_cpu(lease->mask), duration, ttl); 809 dentry, duration, ttl);
810 810
811 /* make lease_rdcache_gen match directory */ 811 /* make lease_rdcache_gen match directory */
812 dir = dentry->d_parent->d_inode; 812 dir = dentry->d_parent->d_inode;
813 di->lease_shared_gen = ceph_inode(dir)->i_shared_gen; 813 di->lease_shared_gen = ceph_inode(dir)->i_shared_gen;
814 814
815 if (lease->mask == 0) 815 if (duration == 0)
816 goto out_unlock; 816 goto out_unlock;
817 817
818 if (di->lease_gen == session->s_cap_gen && 818 if (di->lease_gen == session->s_cap_gen &&
@@ -1022,9 +1022,7 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req,
1022 1022
1023 /* do we have a dn lease? */ 1023 /* do we have a dn lease? */
1024 have_lease = have_dir_cap || 1024 have_lease = have_dir_cap ||
1025 (le16_to_cpu(rinfo->dlease->mask) & 1025 le32_to_cpu(rinfo->dlease->duration_ms);
1026 CEPH_LOCK_DN);
1027
1028 if (!have_lease) 1026 if (!have_lease)
1029 dout("fill_trace no dentry lease or dir cap\n"); 1027 dout("fill_trace no dentry lease or dir cap\n");
1030 1028
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index 0c1d91756528..3b1e743b8c8d 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -2714,7 +2714,6 @@ static void handle_lease(struct ceph_mds_client *mdsc,
2714 struct ceph_mds_lease *h = msg->front.iov_base; 2714 struct ceph_mds_lease *h = msg->front.iov_base;
2715 u32 seq; 2715 u32 seq;
2716 struct ceph_vino vino; 2716 struct ceph_vino vino;
2717 int mask;
2718 struct qstr dname; 2717 struct qstr dname;
2719 int release = 0; 2718 int release = 0;
2720 2719
@@ -2725,7 +2724,6 @@ static void handle_lease(struct ceph_mds_client *mdsc,
2725 goto bad; 2724 goto bad;
2726 vino.ino = le64_to_cpu(h->ino); 2725 vino.ino = le64_to_cpu(h->ino);
2727 vino.snap = CEPH_NOSNAP; 2726 vino.snap = CEPH_NOSNAP;
2728 mask = le16_to_cpu(h->mask);
2729 seq = le32_to_cpu(h->seq); 2727 seq = le32_to_cpu(h->seq);
2730 dname.name = (void *)h + sizeof(*h) + sizeof(u32); 2728 dname.name = (void *)h + sizeof(*h) + sizeof(u32);
2731 dname.len = msg->front.iov_len - sizeof(*h) - sizeof(u32); 2729 dname.len = msg->front.iov_len - sizeof(*h) - sizeof(u32);
@@ -2737,8 +2735,8 @@ static void handle_lease(struct ceph_mds_client *mdsc,
2737 2735
2738 /* lookup inode */ 2736 /* lookup inode */
2739 inode = ceph_find_inode(sb, vino); 2737 inode = ceph_find_inode(sb, vino);
2740 dout("handle_lease %s, mask %d, ino %llx %p %.*s\n", 2738 dout("handle_lease %s, ino %llx %p %.*s\n",
2741 ceph_lease_op_name(h->action), mask, vino.ino, inode, 2739 ceph_lease_op_name(h->action), vino.ino, inode,
2742 dname.len, dname.name); 2740 dname.len, dname.name);
2743 if (inode == NULL) { 2741 if (inode == NULL) {
2744 dout("handle_lease no inode %llx\n", vino.ino); 2742 dout("handle_lease no inode %llx\n", vino.ino);
@@ -2828,7 +2826,6 @@ void ceph_mdsc_lease_send_msg(struct ceph_mds_session *session,
2828 return; 2826 return;
2829 lease = msg->front.iov_base; 2827 lease = msg->front.iov_base;
2830 lease->action = action; 2828 lease->action = action;
2831 lease->mask = cpu_to_le16(1);
2832 lease->ino = cpu_to_le64(ceph_vino(inode).ino); 2829 lease->ino = cpu_to_le64(ceph_vino(inode).ino);
2833 lease->first = lease->last = cpu_to_le64(ceph_vino(inode).snap); 2830 lease->first = lease->last = cpu_to_le64(ceph_vino(inode).snap);
2834 lease->seq = cpu_to_le32(seq); 2831 lease->seq = cpu_to_le32(seq);
@@ -2850,7 +2847,7 @@ void ceph_mdsc_lease_send_msg(struct ceph_mds_session *session,
2850 * Pass @inode always, @dentry is optional. 2847 * Pass @inode always, @dentry is optional.
2851 */ 2848 */
2852void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc, struct inode *inode, 2849void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc, struct inode *inode,
2853 struct dentry *dentry, int mask) 2850 struct dentry *dentry)
2854{ 2851{
2855 struct ceph_dentry_info *di; 2852 struct ceph_dentry_info *di;
2856 struct ceph_mds_session *session; 2853 struct ceph_mds_session *session;
@@ -2858,7 +2855,6 @@ void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc, struct inode *inode,
2858 2855
2859 BUG_ON(inode == NULL); 2856 BUG_ON(inode == NULL);
2860 BUG_ON(dentry == NULL); 2857 BUG_ON(dentry == NULL);
2861 BUG_ON(mask == 0);
2862 2858
2863 /* is dentry lease valid? */ 2859 /* is dentry lease valid? */
2864 spin_lock(&dentry->d_lock); 2860 spin_lock(&dentry->d_lock);
@@ -2868,8 +2864,8 @@ void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc, struct inode *inode,
2868 di->lease_gen != di->lease_session->s_cap_gen || 2864 di->lease_gen != di->lease_session->s_cap_gen ||
2869 !time_before(jiffies, dentry->d_time)) { 2865 !time_before(jiffies, dentry->d_time)) {
2870 dout("lease_release inode %p dentry %p -- " 2866 dout("lease_release inode %p dentry %p -- "
2871 "no lease on %d\n", 2867 "no lease\n",
2872 inode, dentry, mask); 2868 inode, dentry);
2873 spin_unlock(&dentry->d_lock); 2869 spin_unlock(&dentry->d_lock);
2874 return; 2870 return;
2875 } 2871 }
@@ -2880,8 +2876,8 @@ void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc, struct inode *inode,
2880 __ceph_mdsc_drop_dentry_lease(dentry); 2876 __ceph_mdsc_drop_dentry_lease(dentry);
2881 spin_unlock(&dentry->d_lock); 2877 spin_unlock(&dentry->d_lock);
2882 2878
2883 dout("lease_release inode %p dentry %p mask %d to mds%d\n", 2879 dout("lease_release inode %p dentry %p to mds%d\n",
2884 inode, dentry, mask, session->s_mds); 2880 inode, dentry, session->s_mds);
2885 ceph_mdsc_lease_send_msg(session, inode, dentry, 2881 ceph_mdsc_lease_send_msg(session, inode, dentry,
2886 CEPH_MDS_LEASE_RELEASE, seq); 2882 CEPH_MDS_LEASE_RELEASE, seq);
2887 ceph_put_mds_session(session); 2883 ceph_put_mds_session(session);
diff --git a/fs/ceph/mds_client.h b/fs/ceph/mds_client.h
index 7d8a0d662d56..8a40f0636ba9 100644
--- a/fs/ceph/mds_client.h
+++ b/fs/ceph/mds_client.h
@@ -333,7 +333,7 @@ extern void ceph_mdsc_sync(struct ceph_mds_client *mdsc);
333 333
334extern void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc, 334extern void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc,
335 struct inode *inode, 335 struct inode *inode,
336 struct dentry *dn, int mask); 336 struct dentry *dn);
337 337
338extern void ceph_invalidate_dir_request(struct ceph_mds_request *req); 338extern void ceph_invalidate_dir_request(struct ceph_mds_request *req);
339 339