From 754887b575795ef96cda095f7f0d8c898e20f00f Mon Sep 17 00:00:00 2001 From: Igor Podoski Date: Wed, 14 Sep 2016 07:36:43 -0400 Subject: [PATCH] mon: OSDMonitor: Missing nearfull flag set Output from 'ceph -s -f json-pretty' wans't showing nearfull flag set. Signed-off-by: Igor Podoski --- src/mon/OSDMonitor.cc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 801ae887f8062..4b225af2d3f8c 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -2827,9 +2827,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; } } -- 2.39.5