From a8d7b3bed0159a2c088da13531b848bba1f4dea0 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Fri, 23 Oct 2009 17:20:27 -0700 Subject: [PATCH] Objecter: subscribe to OSDMap updates when paused or full --- src/osdc/Objecter.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 70d390339ed9c..3bd7a9fc4d541 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -121,6 +121,9 @@ void Objecter::handle_osd_map(MOSDMap *m) bool was_pauserd = osdmap->test_flag(CEPH_OSDMAP_PAUSERD); bool was_pausewr = osdmap->test_flag(CEPH_OSDMAP_PAUSEWR); + + if (was_pauserd || was_pausewr) + maybe_request_map(); if (m->incremental_maps.count(e)) { dout(3) << "handle_osd_map decoding incremental epoch " << e << dendl; @@ -182,6 +185,10 @@ void Objecter::handle_osd_map(MOSDMap *m) if (!changed_pgs.empty()) kick_requests(changed_pgs); } + + //now check if the map is full -- we want to subscribe if it is! + if (osdmap->test_flag(CEPH_OSDMAP_FULL) & CEPH_OSDMAP_FULL) + maybe_request_map(); map >::iterator p = waiting_for_map.begin(); while (p != waiting_for_map.end() && -- 2.39.5