diff options
author | Sage Weil <sage@newdream.net> | 2011-07-26 14:28:25 -0400 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2011-07-26 14:28:25 -0400 |
commit | 2f90b852e3ae73889d7f6de6ecf429b9b6a6b103 (patch) | |
tree | 584e53ef3a6919e68ee0d8804da8f3d63838a3fc /fs/ceph | |
parent | 468640e32c7f6bfdaaa011095cc388786755d159 (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.c | 10 | ||||
-rw-r--r-- | fs/ceph/mds_client.c | 18 | ||||
-rw-r--r-- | fs/ceph/mds_client.h | 2 |
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 | */ |
2852 | void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc, struct inode *inode, | 2849 | void 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 | ||
334 | extern void ceph_mdsc_lease_release(struct ceph_mds_client *mdsc, | 334 | extern 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 | ||
338 | extern void ceph_invalidate_dir_request(struct ceph_mds_request *req); | 338 | extern void ceph_invalidate_dir_request(struct ceph_mds_request *req); |
339 | 339 | ||