From: Sage Weil Date: Fri, 15 Jun 2018 18:51:03 +0000 (-0500) Subject: mon/OSDMonitor: fix NEW flag adjustment in destroy[-new] X-Git-Tag: v13.2.2~98^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=223aa4d2ced4a3d8c4f00b7872a21aa1510c151b;p=ceph.git 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 (cherry picked from commit 13393f6108a89973e0415caa61c6025c760a3930) --- diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 5e8440afd29e..454265fcdd3d 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -7774,7 +7774,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