]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: don't update importing caps' mseq when handing cap export 25680/head
authorYan, Zheng <zyan@redhat.com>
Thu, 29 Nov 2018 03:26:36 +0000 (11:26 +0800)
committerJos Collin <jcollin@redhat.com>
Sat, 22 Dec 2018 04:10:05 +0000 (09:40 +0530)
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" <zyan@redhat.com>
Fixes: http://tracker.ceph.com/issues/37464
(cherry picked from commit d308b54db57591eff6a5e17dfc6c385156a79f53)

src/client/Client.cc

index 1380eb5646ee98902dfdea976b4de278e2c0f3a3..53bfd28cb6495ccd9bd4be57cb7f1f8cb557a238 100644 (file)
@@ -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)