]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mon/OSDMonitor: fix NEW flag adjustment in destroy[-new]
authorSage Weil <sage@redhat.com>
Fri, 15 Jun 2018 18:51:03 +0000 (13:51 -0500)
committerSage Weil <sage@redhat.com>
Fri, 15 Jun 2018 18:51:03 +0000 (13:51 -0500)
Only set the NEW flag if it isn't already set.

Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/OSDMonitor.cc

index 21086ebb8c31a8550088b19fff6060b3193c4bfc..4dc4119e8dbb9995847ca7cbd252b546297bafff 100644 (file)
@@ -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