]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: requeue osdmaps on heartbeat connections for cluster connection
authorSage Weil <sage@inktank.com>
Fri, 25 Jan 2013 17:25:28 +0000 (09:25 -0800)
committerSage Weil <sage@inktank.com>
Fri, 25 Jan 2013 17:38:33 +0000 (09:38 -0800)
If we receive an OSDMap on the cluster connection, requeue it for the
cluster messenger, and process it there where we normally do.  This avoids
any concerns about locking and ordering rules.

Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/OSD.cc

index 9541517e37b7f86e949de86612c3407d5fe67526..5df64c45a6e4c030c4683a6436591a55b5098a57 100644 (file)
@@ -3375,6 +3375,14 @@ bool OSD::heartbeat_dispatch(Message *m)
     handle_osd_ping((MOSDPing*)m);
     break;
 
+  case CEPH_MSG_OSD_MAP:
+    {
+      Connection *self = cluster_messenger->get_loopback_connection();
+      cluster_messenger->send_message(m, self);
+      self->put();
+    }
+    break;
+
   default:
     return false;
   }