From e892bcb6152d91559fb57cb34094bbc8e8ab7ffc Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Wed, 27 Feb 2013 09:26:09 +0800 Subject: [PATCH] --- yaml --- r: 373306 b: refs/heads/master c: 964266cce94cee7e4aca42994fcda206c111e917 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/ceph/caps.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index aa961919fdd0..e5806887cc89 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d40ee0dcc1b27792b9b2f3905a5eaf4da061dbd5 +refs/heads/master: 964266cce94cee7e4aca42994fcda206c111e917 diff --git a/trunk/fs/ceph/caps.c b/trunk/fs/ceph/caps.c index 0d54368490db..ea1f177739b2 100644 --- a/trunk/fs/ceph/caps.c +++ b/trunk/fs/ceph/caps.c @@ -553,6 +553,7 @@ int ceph_add_cap(struct inode *inode, cap->implemented = 0; cap->mds = mds; cap->mds_wanted = 0; + cap->mseq = 0; cap->ci = ci; __insert_cap_node(ci, cap); @@ -628,7 +629,10 @@ int ceph_add_cap(struct inode *inode, cap->cap_id = cap_id; cap->issued = issued; cap->implemented |= issued; - cap->mds_wanted |= wanted; + if (mseq > cap->mseq) + cap->mds_wanted = wanted; + else + cap->mds_wanted |= wanted; cap->seq = seq; cap->issue_seq = seq; cap->mseq = mseq;