diff options
author | Sage Weil <sage@newdream.net> | 2010-10-28 05:59:49 +0200 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-10-28 06:05:54 +0200 |
commit | 2f56f56ad991edd51ffd0baf1182245ee1277a04 (patch) | |
tree | e4062e2bb1a92b487609cded256d5ede1a6eda90 | |
parent | ceph: do not carry i_lock for readdir from dcache (diff) | |
download | linux-2f56f56ad991edd51ffd0baf1182245ee1277a04.tar.xz linux-2f56f56ad991edd51ffd0baf1182245ee1277a04.zip |
Revert "ceph: update issue_seq on cap grant"
This reverts commit d91f2438d881514e4a923fd786dbd94b764a9440.
The intent of issue_seq is to distinguish between mds->client messages that
(re)create the cap and those that do not, which means we should _only_ be
updating that value in the create paths. By updating it in handle_cap_grant,
we reset it to zero, which then breaks release.
The larger question is what workload/problem made me think it should be
updated here...
Signed-off-by: Sage Weil <sage@newdream.net>
-rw-r--r-- | fs/ceph/caps.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 98ab13e2b71d..6e0942f33dd8 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -2273,8 +2273,7 @@ static void handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant, { struct ceph_inode_info *ci = ceph_inode(inode); int mds = session->s_mds; - unsigned seq = le32_to_cpu(grant->seq); - unsigned issue_seq = le32_to_cpu(grant->issue_seq); + int seq = le32_to_cpu(grant->seq); int newcaps = le32_to_cpu(grant->caps); int issued, implemented, used, wanted, dirty; u64 size = le64_to_cpu(grant->size); @@ -2286,8 +2285,8 @@ static void handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant, int revoked_rdcache = 0; int queue_invalidate = 0; - dout("handle_cap_grant inode %p cap %p mds%d seq %u/%u %s\n", - inode, cap, mds, seq, issue_seq, ceph_cap_string(newcaps)); + dout("handle_cap_grant inode %p cap %p mds%d seq %d %s\n", + inode, cap, mds, seq, ceph_cap_string(newcaps)); dout(" size %llu max_size %llu, i_size %llu\n", size, max_size, inode->i_size); @@ -2383,7 +2382,6 @@ static void handle_cap_grant(struct inode *inode, struct ceph_mds_caps *grant, } cap->seq = seq; - cap->issue_seq = issue_seq; /* file layout may have changed */ ci->i_layout = grant->layout; |