Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb170a22 authored by Sage Weil's avatar Sage Weil
Browse files

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: default avatarSage Weil <sage@newdream.net>
parent ed0552a1
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -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);
		}
	}
}