From: Kefu Chai Date: Mon, 20 Jul 2015 16:33:19 +0000 (+0800) Subject: mon: track osd_epoch of all MonSessions X-Git-Tag: v9.1.0~330^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=de43a02e06650a552f048dc8acd17f255126fed9;p=ceph.git mon: track osd_epoch of all MonSessions previously, we only track the osd_epoch for OSD peers. but other MonClients who receives osdmaps can also benefit from osd_epoch. Signed-off-by: Kefu Chai --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 813d6c3dbcf9..b770601e7ca1 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2343,12 +2343,10 @@ void OSDMonitor::send_incremental(MonOpRequestRef op, epoch_t first) << " to " << op->get_req()->get_orig_source_inst() << dendl; - MonSession *s = NULL; - if (op->get_req()->get_source().is_osd()) { - s = op->get_session(); - } + MonSession *s = op->get_session(); + assert(s); - if (s && first <= s->osd_epoch) { + if (first <= s->osd_epoch) { dout(10) << __func__ << s->inst << " should already have epoch " << s->osd_epoch << dendl; first = s->osd_epoch + 1; @@ -2372,8 +2370,7 @@ void OSDMonitor::send_incremental(MonOpRequestRef op, epoch_t first) m->maps[first] = bl; mon->send_reply(op, m); - if (s) - s->osd_epoch = osdmap.get_epoch(); + s->osd_epoch = osdmap.get_epoch(); return; } @@ -2385,8 +2382,7 @@ void OSDMonitor::send_incremental(MonOpRequestRef op, epoch_t first) m->newest_map = osdmap.get_epoch(); mon->send_reply(op, m); - if (s) - s->osd_epoch = last; + s->osd_epoch = last; } void OSDMonitor::send_incremental(epoch_t first, MonSession *session, @@ -2410,9 +2406,7 @@ void OSDMonitor::send_incremental(epoch_t first, MonSession *session, m->newest_map = osdmap.get_epoch(); m->maps[first] = bl; session->con->send_message(m); - if (session->inst.name.is_osd()) { - session->osd_epoch = first; - } + session->osd_epoch = first; first++; } @@ -2421,10 +2415,7 @@ void OSDMonitor::send_incremental(epoch_t first, MonSession *session, MOSDMap *m = build_incremental(first, last); session->con->send_message(m); first = last + 1; - - if (session->inst.name.is_osd()) { - session->osd_epoch = last; - } + session->osd_epoch = last; if (onetime) break;