ceph: check migrate seq before changing auth cap
We may receive old request reply from the exporter MDS after receiving the importer MDS' cap import message. Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com> Reviewed-by: Sage Weil <sage@inktank.com>
This commit is contained in:
parent
fc2744aa12
commit
b8c2f3ae2d
1 changed files with 5 additions and 3 deletions
|
@ -612,9 +612,11 @@ int ceph_add_cap(struct inode *inode,
|
|||
__cap_delay_requeue(mdsc, ci);
|
||||
}
|
||||
|
||||
if (flags & CEPH_CAP_FLAG_AUTH)
|
||||
ci->i_auth_cap = cap;
|
||||
else if (ci->i_auth_cap == cap) {
|
||||
if (flags & CEPH_CAP_FLAG_AUTH) {
|
||||
if (ci->i_auth_cap == NULL ||
|
||||
ceph_seq_cmp(ci->i_auth_cap->mseq, mseq) < 0)
|
||||
ci->i_auth_cap = cap;
|
||||
} else if (ci->i_auth_cap == cap) {
|
||||
ci->i_auth_cap = NULL;
|
||||
spin_lock(&mdsc->cap_dirty_lock);
|
||||
if (!list_empty(&ci->i_dirty_item)) {
|
||||
|
|
Loading…
Reference in a new issue