]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - fs/ceph/mds_client.c
ceph: connect to export targets if mds is laggy
[net-next-2.6.git] / fs / ceph / mds_client.c
index 462602ec7fb1623577dd6f696276e3b47a089cf5..552b934c9cd0f655a5ee40f9e70e1dc26faa6f02 100644 (file)
@@ -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);
+               }
+       }
 }