From: Yan, Zheng Date: Thu, 29 Nov 2018 03:26:36 +0000 (+0800) Subject: client: don't update importing caps' mseq when handing cap export X-Git-Tag: v13.2.5~85^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1601f32ca9a327cef1b551ffda2335cfe832e152;p=ceph.git client: don't update importing caps' mseq when handing cap export Updating mseq makes client think importer mds has accepted all prior cap messages and importer mds knows what caps client wants. Actually some cap messages may have been dropped because of mseq mismatch. If mseq is left untouched, importing caps' mds_wanted later will get reset by cap import message. Signed-off-by: "Yan, Zheng" Fixes: http://tracker.ceph.com/issues/37464 (cherry picked from commit d308b54db57591eff6a5e17dfc6c385156a79f53) --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 1380eb5646e..53bfd28cb64 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -4843,7 +4843,6 @@ void Client::handle_cap_export(MetaSession *session, Inode *in, MClientCaps *m) tcap.cap_id = m->peer.cap_id; tcap.seq = m->peer.seq - 1; tcap.issue_seq = tcap.seq; - tcap.mseq = m->peer.mseq; tcap.issued |= cap.issued; tcap.implemented |= cap.issued; if (&cap == in->auth_cap)