]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: periodically ping mds's
authorSage Weil <sage@newdream.net>
Tue, 25 Aug 2009 23:23:47 +0000 (16:23 -0700)
committerSage Weil <sage@newdream.net>
Wed, 26 Aug 2009 20:09:09 +0000 (13:09 -0700)
src/kernel/mds_client.c

index 166481129fad30eb02574657d57cc98b4e9c10d2..2b76731fa44c3e5dc009fd32980e999a90434658 100644 (file)
@@ -2576,8 +2576,17 @@ static void delayed_work(struct work_struct *work)
                mutex_unlock(&mdsc->mutex);
 
                mutex_lock(&s->s_mutex);
-               if (renew_caps)
+               if (renew_caps) {
                        send_renew_caps(mdsc, s);
+               } else {
+                       struct ceph_entity_name name = {
+                               .type = cpu_to_le32(CEPH_ENTITY_TYPE_MDS),
+                               .num = cpu_to_le32(s->s_mds)
+                       };
+
+                       ceph_ping(mdsc->client->msgr, name,
+                                 ceph_mdsmap_get_addr(mdsc->mdsmap, s->s_mds));
+               }
                add_cap_releases(mdsc, s, -1);
                send_cap_releases(mdsc, s);
                mutex_unlock(&s->s_mutex);