ceph: connect to export targets if mds is laggy
If an MDS we are talking to may have failed, we need to open sessions to its potential export targets to ensure that any in-progress migration that may have involved some of our caps is properly handled. Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
parent
ed0552a1a2
commit
cb170a2215
1 changed files with 15 additions and 0 deletions
|
@ -2470,6 +2470,21 @@ static void check_new_map(struct ceph_mds_client *mdsc,
|
|||
wake_up_session_caps(s, 1);
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < newmap->m_max_mds && i < mdsc->max_sessions; i++) {
|
||||
s = mdsc->sessions[i];
|
||||
if (!s)
|
||||
continue;
|
||||
if (!ceph_mdsmap_is_laggy(newmap, i))
|
||||
continue;
|
||||
if (s->s_state == CEPH_MDS_SESSION_OPEN ||
|
||||
s->s_state == CEPH_MDS_SESSION_HUNG ||
|
||||
s->s_state == CEPH_MDS_SESSION_CLOSING) {
|
||||
dout(" connecting to export targets of laggy mds%d\n",
|
||||
i);
|
||||
__open_export_target_sessions(mdsc, s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue