From 13393f6108a89973e0415caa61c6025c760a3930 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 15 Jun 2018 13:51:03 -0500 Subject: [PATCH] mon/OSDMonitor: fix NEW flag adjustment in destroy[-new] Only set the NEW flag if it isn't already set. Signed-off-by: Sage Weil --- src/mon/OSDMonitor.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 21086ebb8c31a..4dc4119e8dbb9 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -7682,7 +7682,10 @@ int OSDMonitor::prepare_command_osd_new( assert(id >= 0); assert(osdmap.is_destroyed(id)); pending_inc.new_weight[id] = CEPH_OSD_OUT; - pending_inc.new_state[id] |= CEPH_OSD_DESTROYED | CEPH_OSD_NEW; + pending_inc.new_state[id] |= CEPH_OSD_DESTROYED; + if ((osdmap.get_state(id) & CEPH_OSD_NEW) == 0) { + pending_inc.new_state[id] |= CEPH_OSD_NEW; + } if (osdmap.get_state(id) & CEPH_OSD_UP) { // due to http://tracker.ceph.com/issues/20751 some clusters may // have UP set for non-existent OSDs; make sure it is cleared -- 2.39.5