From: Igor Podoski Date: Wed, 14 Sep 2016 11:36:43 +0000 (-0400) Subject: mon: OSDMonitor: Missing nearfull flag set X-Git-Tag: v10.2.4~73^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=35660d1aabd8b27bf3ba71e50d00ba1cf1cecf00;p=ceph.git mon: OSDMonitor: Missing nearfull flag set Output from 'ceph -s -f json-pretty' wans't showing nearfull flag set. Signed-off-by: Igor Podoski (cherry picked from commit 754887b575795ef96cda095f7f0d8c898e20f00f) --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index da9cd6735a02..1ddc0583d345 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2797,9 +2797,20 @@ void OSDMonitor::tick() dout(10) << "No full osds, removing full flag" << dendl; remove_flag(CEPH_OSDMAP_FULL); } + + if (!mon->pgmon()->pg_map.nearfull_osds.empty()) { + dout(5) << "There are near full osds, setting nearfull flag" << dendl; + add_flag(CEPH_OSDMAP_NEARFULL); + } else if (osdmap.test_flag(CEPH_OSDMAP_NEARFULL)){ + dout(10) << "No near full osds, removing nearfull flag" << dendl; + remove_flag(CEPH_OSDMAP_NEARFULL); + } if (pending_inc.new_flags != -1 && - (pending_inc.new_flags ^ osdmap.flags) & CEPH_OSDMAP_FULL) { - dout(1) << "New setting for CEPH_OSDMAP_FULL -- doing propose" << dendl; + (pending_inc.new_flags ^ osdmap.flags) & (CEPH_OSDMAP_FULL | CEPH_OSDMAP_NEARFULL)) { + dout(1) << "New setting for" << + (pending_inc.new_flags & CEPH_OSDMAP_FULL ? " CEPH_OSDMAP_FULL" : "") << + (pending_inc.new_flags & CEPH_OSDMAP_NEARFULL ? " CEPH_OSDMAP_NEARFULL" : "") + << " -- doing propose" << dendl; do_propose = true; } }