From: Sage Weil Date: Fri, 25 Jan 2013 17:25:28 +0000 (-0800) Subject: osd: requeue osdmaps on heartbeat connections for cluster connection X-Git-Tag: v0.57~110^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=76705ace2e9767939aa9acf5d9257c800f838854;p=ceph.git osd: requeue osdmaps on heartbeat connections for cluster connection 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 --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 9541517e37b7..5df64c45a6e4 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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; }