Commit d9ffc4f7 authored by Yan, Zheng's avatar Yan, Zheng Committed by Sage Weil

ceph: set mds_wanted when MDS reply changes a cap to auth cap

When adjusting caps client wants, MDS does not record caps that are
not allowed. For non-auth MDS, it does not record WR caps. So when
a MDS reply changes a non-auth cap to auth cap, client needs to set
cap's mds_wanted according to the reply.
Signed-off-by: default avatarYan, Zheng <zheng.z.yan@intel.com>
parent eb13e832
...@@ -622,8 +622,10 @@ int ceph_add_cap(struct inode *inode, ...@@ -622,8 +622,10 @@ int ceph_add_cap(struct inode *inode,
if (flags & CEPH_CAP_FLAG_AUTH) { if (flags & CEPH_CAP_FLAG_AUTH) {
if (ci->i_auth_cap == NULL || if (ci->i_auth_cap == NULL ||
ceph_seq_cmp(ci->i_auth_cap->mseq, mseq) < 0) ceph_seq_cmp(ci->i_auth_cap->mseq, mseq) < 0) {
ci->i_auth_cap = cap; ci->i_auth_cap = cap;
cap->mds_wanted = wanted;
}
ci->i_cap_exporting_issued = 0; ci->i_cap_exporting_issued = 0;
} else { } else {
WARN_ON(ci->i_auth_cap == cap); WARN_ON(ci->i_auth_cap == cap);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment