]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
mds: fix corner case of replaying open sessions
authorYan, Zheng <zyan@redhat.com>
Sat, 8 Jun 2019 05:08:21 +0000 (13:08 +0800)
committerYan, Zheng <zyan@redhat.com>
Thu, 13 Jun 2019 16:43:41 +0000 (00:43 +0800)
commit1feec7d4255ed41be3a2669937652ce0e2e448ea
tree29a118b47e017dbb3bac4d98162f52ad0b90ec6d
parent74f0c36082d85e2e4640914549dc003742d265b2
mds: fix corner case of replaying open sessions

Marking a session dirty may flush all existing dirty sessions. MDS
calls Server::finish_force_open_sessions() for log event that opens
multiple sessions. The function marks sessions dirty one by one. So
sessions opened by a log event may get flushed partially.

When replaying a log event that opens multiple sessions, mds need to
check if some of these sessions have already been flushed.

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
(cherry picked from commit 277327565fae93fad8e03cc5f27b78c98354c0dc)

 Conflicts:
src/mds/SessionMap.cc
src/mds/SessionMap.h
src/mds/journal.cc
src/mds/Server.cc
src/mds/SessionMap.cc
src/mds/SessionMap.h
src/mds/journal.cc